ユーザが自由に番号を決められるけど、指定が無い場合はユニークな番号を設定したい、みたいな場合、空き番号を探してくる必要がある。 これについて検索すると同じことで悩んだ人が多いらしくいろいろ見つかる。 そのうちでやり方がシンプルかな、と思った方法を一つメモしておく。 SELECT MIN(t.number) as no FROM table as t WHERE t.deletedAt is null -- 論理削除などの条件があれば記述 AND (t1.number + 1) not in ( SELECT number FROM table WHERE deletedAt is null )"; 原理
|