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


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

mysql> create table FindValue
   -> (
   -> SequenceNumber int
   -> );
Query OK, 0 rows affected (0.56 sec)

使用 insert 命令在表中插入一些记录。以下是查询内容 -

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)

更新于: 30-Jul-2019

浏览量 188

启动你的 职业

完成课程并获得认证

开始
广告