Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL表中查找第一个未使用的数字_Mysql_Sql - Fatal编程技术网

在MySQL表中查找第一个未使用的数字

在MySQL表中查找第一个未使用的数字,mysql,sql,Mysql,Sql,我正在寻找一种解决方案,以便在表中查找未使用的数字。到目前为止,我遇到的大多数解决方案是创建一个包含所有数字的临时表,并使用left join查找未使用的数字。在我的情况下,我没有机会创建临时表 前导零的数字范围:0001-1999。这些号码是拨号盘号码,长度必须为4位 列表表: +----+--------+------------+ | id | title | pad_number | +----+--------+------------+ | 1 | Foo |

我正在寻找一种解决方案,以便在表中查找未使用的数字。到目前为止,我遇到的大多数解决方案是创建一个包含所有数字的临时表,并使用left join查找未使用的数字。在我的情况下,我没有机会创建临时表

前导零的数字范围:0001-1999。这些号码是拨号盘号码,长度必须为4位

列表表:

+----+--------+------------+
| 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。