LEFT JOIN을 사용하여 MySQL 테이블에서 사용되지 않은 최소 값을 찾을 수 있습니다. 먼저 테이블을 생성해 보겠습니다.
mysql> create table FindValue -> ( -> SequenceNumber int -> ); Query OK, 0 rows affected (0.56 sec)
삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -
mysql> insert into FindValue values(109); Query OK, 1 row affected (0.14 sec) mysql> insert into FindValue values(110); Query OK, 1 row affected (0.15 sec) mysql> insert into FindValue values(111); Query OK, 1 row affected (0.13 sec) mysql> insert into FindValue values(113); Query OK, 1 row affected (0.13 sec) mysql> insert into FindValue values(114); Query OK, 1 row affected (0.17 sec)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from FindValue;
다음은 출력입니다.
+----------------+ | SequenceNumber | +----------------+ | 109 | | 110 | | 111 | | 113 | | 114 | +----------------+ 5 rows in set (0.00 sec)
다음은 MySQL 테이블에서 사용하지 않는 최소 값을 찾는 쿼리입니다.
mysql> select tbl1 .SequenceNumber+1 AS ValueNotUsedInSequenceNumber -> from FindValue AS tbl1 -> left join FindValue AS tbl2 ON tbl1.SequenceNumber+1 = tbl2.SequenceNumber -> WHERE tbl2.SequenceNumber IS NULL -> ORDER BY tbl1.SequenceNumber LIMIT 1;
다음은 출력입니다.
+------------------------------+ | ValueNotUsedInSequenceNumber | +------------------------------+ | 112 | +------------------------------+ 1 row in set (0.00 sec)