mysql - 在mysql表中查找最小未使用值

标签 mysql

我有一个像这样的 MySQL 表:

+--------+-------+
| Server | Port  |
+--------+-------+
| 1      | 27001 |
| 2      | 27002 |
| 4      | 27004 |
+--------+-------+

你怎么看 - 这里是 27003 端口 - 但它在前一段时间被删除了(只是为了举例)。

有什么方法可以知道 mysql 表中未使用的最小值(例如高于 27000)? 或者没有办法,我需要制作一个单独的表,其中包含所有端口和列“已使用”或“未使用”?

情况说明:我正在创建游戏托管网站,我可以使用自动增加端口,但是一段时间后我会有很多删除/未使用的端口,我想在增加端口范围之前使用所有这些端口.

最佳答案

在 Google 上快速搜索“first missing number from sequence mysql”会得到 this page of common MySQL queries .

它向您展示了如何 find the first missing number from a sequence :

您有一个包含值 (1,2,4,18,19,20,21) 的表 tbl(id int),您希望在其 id 值序列中找到第一个缺失的数字:

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

+---------+ 
| Missing | 
+---------+ 
|       3 | 
+---------+ 

关于mysql - 在mysql表中查找最小未使用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6464656/

相关文章:

mysql - 按类型选择表?

java - Java 中的 MySQL 模拟器

php - 由于 Laravel 中的外键约束而报告错误

php - 本地主机中的 SQL 语法错误

php - 如何在 php 和 mysql 中编写对该表的查询搜索

php - PHP 中的文件上传不起作用

python - 自定义 unique_together 键名

java - 将 HttpClient 响应转换为 JsonObject 时出错

php - 在 html 表中使用单选按钮?

mysql - 查找无效的电子邮件地址