как узнать недостающие номера в таблице sql

0

В моем случае Есть порт между двумя диапазонами, которые начинаются от 7001 до 7050. Если кто-то взял 40 номеров портов, так как я могу узнать доступный номер порта между этими диапазонами чисел.

Например, человек принимает номер порта 7003 и номер 7012, поэтому, как я могу понять, что 7004 до 7011 доступны для меня

помогите мне

Теги:
database
sorting

4 ответа

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;
1

Создайте новый столбец в таблице, например port_status. После этого Когда пользователь берет порт, вы обновляете значение 1 в столбце port_status.

Затем вы получаете запись типа

Select * from table_name where port_status=0

Тогда вы будете все порты, которые не принимаются пользователем

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
0

Вот пример вложенного подзапроса, который вы можете использовать в качестве ссылки

SELECT your-cloumn
FROM ports
WHERE EXISTS 
  (
   SELECT *
   FROM ports
   WHERE your-column BETWEEN your-column AND your-column
  )

Ещё вопросы

Сообщество Overcoder
Наверх
Меню