在MySQL表中找到最小的未使用值?

您可以使用LEFT JOIN查找MySQL表中的最小未使用值。让我们先创建一个表

create table FindValue
   -> (
   -> SequenceNumber int
   -> );

使用insert命令在表中插入一些记录。查询如下-

insert into FindValue values(109);
insert into FindValue values(110);
insert into FindValue values(111);
insert into FindValue values(113);
insert into FindValue values(114);

使用select语句显示表中的所有记录。查询如下-

select *from FindValue;

以下是输出

+----------------+
| SequenceNumber |
+----------------+
|            109 |
|            110 |
|            111 |
|            113 |
|            114 |
+----------------+
5 rows in set (0.00 sec)

这是在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)