ホームページ >データベース >mysql チュートリアル >MYSQL は、行番号のソートを表示し、同じテーブルからのデータのソートを上下に比較します。
要件
小説のチャプター情報テーブルには公開時間が3日を超えると中断されます
感想
小説の章情報テーブルをクエリし、リリース時間に従って章情報を並べ替え、行番号を追加します。同じ情報を持つ table1 と table2 を生成します
左結合関連のクエリ、table1 の行番号が n、table2 の行番号が n+1 であるデータのリリース時間を比較し、3 日以上存在する場合は更新を意味します。壊れています
準備作業
チャプターテーブル:
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
開始
チャプターテーブルをリリース時間に従って昇順にソートし、行番号を表示します
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
クエリ結果をリリース時間順に並べ替えました
関連クエリ
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;
クエリ数>0の場合、作業番号979の作業が中断されています。自分のビジネスに従ってください
説明: ここでは
@ が使用されています。最初はこれが何なのか分かりませんでしたが、mysql の行番号を検索してカスタム変数の使用方法を見つけました (mysql の機能) ) 並べ替えて表示するための
参考ブログ:
SQL Server クエリ行番号
MYSQL rownum 実装
MYSQL カスタム変数使用 (推奨)
要件
小説が中断されました。小説のチャプター情報テーブルのリリース時間: pub_time。リリース時間間隔が 3 日を超える場合、中断されます
感想
小説のチャプター情報テーブルをクエリして、チャプター情報をソートします。リリース時刻に行番号を追加します。同じ情報を持つ table1 と table2 を生成します
左結合関連のクエリ、table1 の行番号が n、table2 の行番号が n+1 であるデータのリリース時間を比較し、3 日以上存在する場合は更新を意味します。壊れています
準備作業
チャプターテーブル:
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
開始
チャプターテーブルをリリース時間に従って昇順にソートし、行番号を表示します
クエリ結果はリリース時間順に並べ替えられています
関連クエリ
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
クエリ数>0の場合、作品番号979の作品は中止されています。あなた自身のビジネスに
説明: ここでは
@ が使用されています。最初は私もこれが何なのかわかりませんでしたが、mysql の行番号を検索したところ、カスタム変数 (mysql の機能) を使用していることがわかりました。並べ替えと表示用
関連記事:
C言語のバブルソート、挿入ソート、選択ソートアルゴリズムの比較
関連動画:
以上がMYSQL は、行番号のソートを表示し、同じテーブルからのデータのソートを上下に比較します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。