在MySQL表中查找第一个未使用的数字
我正在寻找一种解决方案,以便在表中查找未使用的数字。到目前为止,我遇到的大多数解决方案是创建一个包含所有数字的临时表,并使用left join查找未使用的数字。在我的情况下,我没有机会创建临时表 前导零的数字范围:0001-1999。这些号码是拨号盘号码,长度必须为4位 列表表:在MySQL表中查找第一个未使用的数字,mysql,sql,Mysql,Sql,我正在寻找一种解决方案,以便在表中查找未使用的数字。到目前为止,我遇到的大多数解决方案是创建一个包含所有数字的临时表,并使用left join查找未使用的数字。在我的情况下,我没有机会创建临时表 前导零的数字范围:0001-1999。这些号码是拨号盘号码,长度必须为4位 列表表: +----+--------+------------+ | id | title | pad_number | +----+--------+------------+ | 1 | Foo |
+----+--------+------------+
| id | title | pad_number |
+----+--------+------------+
| 1 | Foo | 0001 |
| 2 | bar | 0005 |
| 3 | Baz | 1999 |
| 10 | FooBar | 0002 |
+----+--------+------------+
预期结果:
0003
有没有办法检索号码?不存在Use
使用不存在
我会这样做:
select lpad(min(pad_number) + 1, 4, '0')
from t
where not exists (select 1 from t t2 where t2.pad_number = t.pad_number + 1);
我会这样做:
select lpad(min(pad_number) + 1, 4, '0')
from t
where not exists (select 1 from t t2 where t2.pad_number = t.pad_number + 1);
第一个未使用的数字是基于数字的顺序还是其他什么?我只需要得到一个未使用的数字。我被这些语句的组合弄糊涂了:数字范围有前导零,所以前导零没有optional@Brien删除了多余的句子。第一个未使用的数字是基于数字的顺序还是其他什么?我只需要得到一个我被这些语句的组合弄糊涂了:数字范围有前导零,所以前导零没有optional@Brien删除了多余的句子。有没有办法从一个范围中匹配数字?i、 e 0001-1999。当然。使用where条件。谢谢你的回答。不知何故,如果查询不存在,则不会返回0001。是否有任何方法可以匹配某个范围内的数字?i、 e 0001-1999。当然。使用where条件。谢谢你的回答。不知何故,如果查询不存在,则不会返回0001。