MYSQL顯示行號排序、同張表數據排序上下進行比較

  • 需求

  1. 需要查詢小說是否有斷更,小說章節信息表中有發布時間:pub_time,如果發布時間間隔超過三天就算斷更

  • 思路

    1. 查詢小說章節信息表,將章節信息按照發布時間排序,加上行號。生成table1 和table2 信息一樣

    2. left join 關聯查詢,table1行號為 n 與 table2行號為n+1的數據發布時間比較,如果存在大于三天則說明斷更

  • 準備工作

  • 章節表:

    CREATE?TABLE?`t_chapter`?(??`id`?varchar(255)?NOT?NULL?COMMENT?'主鍵',??`auto_code`?varchar(255)?NOT?NULL?COMMENT?'編號',??`production_number`?varchar(11)?NOT?NULL?COMMENT?'作品編號',??`pub_time`?datetime?DEFAULT?NULL?COMMENT?'發布時間',??PRIMARY?KEY?(`id`) )?ENGINE=InnoDB?DEFAULT?CHARSET=utf8
    • 開始

    1. 對章節表根據發布時間升序排序并顯示行號

    ????????SELECT ????????????t.auto_code?, ????????????t.id?, ????????????t.production_number?, ????????????t.pub_time?, ????????????(@rowNum?:=@rowNum?+?1)?AS?rowNo????????FROM ????????????t_chapter?t?, ????????????(SELECT(@rowNum?:=?0))?b????????WHERE? ???????????t.production_number?=?1414(指定作品)????????ORDER?BY ????????????t.pub_time?ASC

    查詢結果已經按照發布時間排序
    MYSQL顯示行號排序、同張表數據排序上下進行比較

    • 關聯查詢

    ????SELECT ????????count(1)????FROM ????????(????????????SELECT ????????????????t.auto_code?, ????????????????t.id?, ????????????????t.production_number?, ????????????????t.pub_time?, ????????????????(@rowNum?:=@rowNum?+?1)?AS?rowNo????????????FROM ????????????????t_chapter?t?, ????????????????(SELECT(@rowNum?:=?0))?b????????????WHERE ????????????????t.production_number?=?979??? ????????????ORDER?BY ????????????????t.pub_time?ASC ????????)?table1????INNER?JOIN(????????SELECT ????????????t.auto_code?, ????????????t.id?, ????????????t.production_number?, ????????????t.pub_time?, ????????????(@a?:=@a?+?1)?AS?rowNo????????FROM ????????????t_chapter?t?, ????????????(SELECT(@a?:=?0))?b????????WHERE ????????????t.production_number?=?979 ????????ORDER?BY ????????????t.pub_time?ASC ????)?table2?ON?table1.rowNo?+?1?=?table2.rowNo? ????WHERE ????????timestampdiff(DAY?,?table2.pub_time?,?table1.pub_time)?>?3;

    如果查詢count>0則作品編號為979的作品存在斷更,更多條件可以依據自己業務而定

    說明:

    這里用到了@,最開始我也不知道這是什么東西,然后我搜索mysql行號查到使用自定義變量(mysql特性)進行排序顯示

    參考博客:

    SQL Server查詢行號
    MYSQL rownum 實現
    MYSQL 自定義變量使用(推薦)

    • 需求

    1. 需要查詢小說是否有斷更,小說章節信息表中有發布時間:pub_time,如果發布時間間隔超過三天就算斷更

  • 思路

    1. 查詢小說章節信息表,將章節信息按照發布時間排序,加上行號。生成table1 和table2 信息一樣

    2. left join 關聯查詢,table1行號為 n 與 table2行號為n+1的數據發布時間比較,如果存在大于三天則說明斷更

  • 準備工作

  • 章節表:

    CREATE?TABLE?`t_chapter`?(??`id`?varchar(255)?NOT?NULL?COMMENT?'主鍵',??`auto_code`?varchar(255)?NOT?NULL?COMMENT?'編號',??`production_number`?varchar(11)?NOT?NULL?COMMENT?'作品編號',??`pub_time`?datetime?DEFAULT?NULL?COMMENT?'發布時間',??PRIMARY?KEY?(`id`) )?ENGINE=InnoDB?DEFAULT?CHARSET=utf8
    • 開始

    1. 對章節表根據發布時間升序排序并顯示行號

    ????????SELECT ????????????t.auto_code?, ????????????t.id?, ????????????t.production_number?, ????????????t.pub_time?, ????????????(@rowNum?:=@rowNum?+?1)?AS?rowNo????????FROM ????????????t_chapter?t?, ????????????(SELECT(@rowNum?:=?0))?b????????WHERE? ???????????t.production_number?=?1414(指定作品)????????ORDER?BY ????????????t.pub_time?ASC

    查詢結果已經按照發布時間排序
    MYSQL顯示行號排序、同張表數據排序上下進行比較

    • 關聯查詢

    ????SELECT ????????count(1)????FROM ????????(????????????SELECT ????????????????t.auto_code?, ????????????????t.id?, ????????????????t.production_number?, ????????????????t.pub_time?, ????????????????(@rowNum?:=@rowNum?+?1)?AS?rowNo????????????FROM ????????????????t_chapter?t?, ????????????????(SELECT(@rowNum?:=?0))?b????????????WHERE ????????????????t.production_number?=?979??? ????????????ORDER?BY ????????????????t.pub_time?ASC ????????)?table1????INNER?JOIN(????????SELECT ????????????t.auto_code?, ????????????t.id?, ????????????t.production_number?, ????????????t.pub_time?, ????????????(@a?:=@a?+?1)?AS?rowNo????????FROM ????????????t_chapter?t?, ????????????(SELECT(@a?:=?0))?b????????WHERE ????????????t.production_number?=?979 ????????ORDER?BY ????????????t.pub_time?ASC ????)?table2?ON?table1.rowNo?+?1?=?table2.rowNo? ????WHERE ????????timestampdiff(DAY?,?table2.pub_time?,?table1.pub_time)?>?3;

    如果查詢count>0則作品編號為979的作品存在斷更,更多條件可以依據自己業務而定

    說明:

    這里用到了@,最開始我也不知道這是什么東西,然后我搜索mysql行號查到使用自定義變量(mysql特性)進行排序顯示

    相關文章:

    c語言中冒泡排序、插入排序、選擇排序算法比較

    c語言中冒泡排序、插入排序、選擇排序算法比較

    相關視頻:

    c語言中冒泡排序、插入排序、選擇排序算法比較

    ? 版權聲明
    THE END
    喜歡就支持一下吧
    點贊5 分享