Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 테이블에서 사용하지 않는 최소 값을 찾으십니까?

<시간/>

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)