mysql - (Mysql : SELECT first number not taken in series of numbers, 类似于 MAX()

标签 mysql sql select

我想知道是否有任何方法可以选择一系列数字中未被采用的第一个数字,类似于您使用 MAX() 来选择最大的数字。

假设您有一列“id”,您插入 1,2,3,5,6,8,10,...

如果你使用 MAX() 它将返回 10。有没有办法选择 4(因为它是第一个免费号码),填写 4 然后选择 7(5,6 已经被占用,所以 7 将是下一个……)

提前致谢! :)

最佳答案

这应该可以做到 -

SELECT t1.id + 1
FROM tbl t1
LEFT JOIN tbl t2
    ON t1.id + 1 = t2.id
WHERE t2.id IS NULL
ORDER BY t1.id ASC
LIMIT 1

关于mysql - (Mysql : SELECT first number not taken in series of numbers, 类似于 MAX(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9907567/

相关文章:

mysql - 将 2 个 SQL 语句合并为 1 个

mysql - 如何从 .csv 文件创建 Hive 表,该文件有一列,字段由分号分隔;

sql - POSTGRES - 将参数值更改为相反

php - 如何阻止 MySQL 十进制字段被四舍五入?

php - PDO bindParam 不允许语句返回结果

php - 将 .CSV 文件导入 mysql 数据库

php - 通过 HTTP 复制 MySQL 数据库

sql - MYSQL - 使用条件排序

需要 PHP/MYSQL 查询帮助

linux - 内核/用户空间和选择之间的共享内存