Общие > Базы данных

MySQL: Выборка отсутствующих номеров

(1/1)

CLiI{er:
Здравствуйте.

Подскажите пожалуйста, как решить проблему с выборкой отсутствующих номеров.
Таблица:

--- Код: ---+----+-----------+-------+
| id | id_number | value |
+----+-----------+-------+
| 11 | 1         | a     |
| 12 | 2         | b     |
| 13 | 3         | c     |
| 25 | 5         | d     |
| 57 | 7         | e     |
+----+-----------+-------+
--- Конец кода ---

Нужно выбрать числа 4 и 6 из поля id_number.

Вторую таблицу что-ли делать из сгенерированных номеров, а потом по LEFT_JOIN всё выбрать?
Так число в поле id_number заведомо неизвестно.
Поэтому совершенно непонятно, до какого номера генерить таблицу.

tserbis:
А если будет запись с  id_number = 128, надо будет [8; 127] тоже доставать?

CLiI{er:
Правильно. Все от 8 до 127 включительно.

tserbis:
Выбираешь существующие, при fetchingе создаёшь PHP-массив и одновременно вычисляешь максимальный, потом array_diff (или как там?) с массивом, созданным с пом. range.

CLiI{er:
Да, но в предложенном решении средства MySQL не используются. Если на PHP, то можно и не создавать два огромных массива, а пройтись по id_number со счетчиком if ($id_number > $i). Первое же несовпадение (5 > 4) сообщит потерянную цифру 4. Но решение для MySQL нужно.

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии