[英]how to find out missing numbers in sql table
在我的情况下,从7001到7050的两个范围之间都有端口。如果有人使用了40个端口号,那么我如何才能找出这些范围内的可用端口号。
例如,一个人使用7003和7012端口号,因此我如何确定7004至7011对我可用
请帮帮我
在类似于port_status的表中创建新列。之后,当用户占用端口时,则更新port_status列中的值1。
然后您获取记录
Select * from table_name where port_status=0
然后,您将所有用户未占用的端口
不确定答案,但您可以检查此查询
select min_a - 1 + level
from ( select min(a) min_a
, max(a) max_a
from test1
)
connect by level <= max_a - min_a + 1
minus
select a
from test1
结果将是:
MIN_A-1+LEVEL
-------------
7003
7007
7008
7009
这是嵌套子查询的示例,您可以将其用作参考
SELECT your-cloumn
FROM ports
WHERE EXISTS
(
SELECT *
FROM ports
WHERE your-column BETWEEN your-column AND your-column
)
添加一个status
列,该端口在空闲时为0,在占用端口时为1。
ALTER TABLE your_port_table ADD `status` INT DEFAULT 0;
因此,您可以轻松地运行以下查询以获取具有最小端口号的空闲端口:
SELECT port_number
FROM your_port_table
WHERE `status`=0
ORDER BY port_number DESC
LIMIT 1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.