【发布时间】:2018-07-30 09:48:45
【问题描述】:
在我的情况下,从 7001 到 7050 的两个范围之间有端口。如果有人占用了 40 个端口号,那么我如何找出这些数字范围之间的可用端口号。
例如 一个人使用 7003 和 7012 端口号,所以我怎么知道 7004 到 7011 可供我使用
请帮帮我
【问题讨论】:
标签: php mysql sql database sorting
在我的情况下,从 7001 到 7050 的两个范围之间有端口。如果有人占用了 40 个端口号,那么我如何找出这些数字范围之间的可用端口号。
例如 一个人使用 7003 和 7012 端口号,所以我怎么知道 7004 到 7011 可供我使用
请帮帮我
【问题讨论】:
标签: php mysql sql database sorting
在表中创建新列,如 port_status 之后,当用户使用端口时,您会更新 port_status 列中的值 1。
然后你像这样获取记录
Select * from table_name where port_status=0
然后你将所有未被用户占用的端口
【讨论】:
添加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;
【讨论】:
不确定答案,但您可以检查此查询
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
)
【讨论】: