在我的情况下,在两个范围之间有从7001到7050之间的端口。如果某人已经获取了40个端口号,那么我怎么能找到这些数字范围之间的可用端口号。
例如 一个人拿7003和7012端口号,这样我怎么能算出7004到7011可供我使用
请帮帮我
答案 0 :(得分:1)
在表中创建新列,如port_status 之后当用户获取端口时,则更新port_status列中的值1。
然后你获取像
这样的记录Select * from table_name where port_status=0
然后您将使用未被用户占用的所有端口
答案 1 :(得分: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
答案 2 :(得分:0)
以下是嵌套子查询的示例,您可以将其用作参考
SELECT your-cloumn
FROM ports
WHERE EXISTS
(
SELECT *
FROM ports
WHERE your-column BETWEEN your-column AND your-column
)
答案 3 :(得分: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;