MySQLで歯抜けになっているint型の数値を取得する
2014/05/22
MySQLで歯抜けになっているシーケンス番号を
取得したいケースがあった。
■ソース
SELECT MIN(seq + 1) AS min_no
FROM test_table a
WHERE NOT EXISTS (
SELECT seq
FROM test_table b
WHERE a.seq + 1 = b.seq
)
■参考サイト
http://okwave.jp/qa/q6093210.html
■その他
EXISTSて何? となったので調べたところ、
結果が存在するか調べる、というものらしい。
http://www.i2kt.com/dbms/sqlref/operator/logic/sql_02030501.html
NOTがついているから、抜け番があった際に
真になって、その抜け番が抽出されているみたい。
関連記事
-
InnoDBのオートインクリメントで抜け番が発生する原因について
MySQLのInnoDBでIDというカラムにオートインクリメント設定していたが、 ...
-
MySQLでdatetime型のカラムから秒は省いて検索する方法
MySQLでdatetime型のカラムに対して「2022-10-07 10:30 ...
-
MySQLで指定の順にデータをソートする方法(ORDER BY FIELD)
MySQLで指定した順にソートしてデータを取り出したい。通常だと主キーだったり何 ...
-
MySQLで大文字小文字
半角英数字のみのフォームで入力した値を検索した際、 データに差異が発生。 [Aa ...
-
MySQLで経度緯度から半径○Kmのデータを抽出する方法
経度と緯度をtext型として格納しているMySQLのテーブルがあり、指定した経度 ...