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

2024-02-04

我有一个像这样的 MySQL 表:

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

您可以看到,这里是 27003 端口,但它不久前已被删除(仅作为示例)。

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

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


在 Google 上快速搜索“mysql序列中第一个缺失的数字 http://www.google.com.au/search?q=first+missing+number+from+sequence+mysql" gives 此页常见 MySQL 查询 http://www.artfulsoftware.com/infotree/queries.php.

它向您展示了如何找到序列中第一个缺失的数字 http://www.artfulsoftware.com/infotree/queries.php#71:

您有一个表 tbl(id int) ,其值为 (1,2,4,18,19,20,21),并且您希望找到其 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 | 
+---------+ 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在mysql表中查找最小未使用值 的相关文章

随机推荐