在mysql表中找到最小未使用的值

我有一个像这样的MySQL表:

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

你怎么看 – 这里是27003端口 – 但它被删除了一段时间(仅举例).

有没有办法知道mysql表中未使用的最小值(例如高于27000)?
或者没有办法,我需要使用“used”或“not used”为所有端口和列创建一个单独的表?

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

在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 | 
+---------+ 
翻译自:https://stackoverflow.com/questions/6464656/find-minimum-not-used-value-in-mysql-table

转载注明原文:在mysql表中找到最小未使用的值