Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Запрос к БД
Форумы портала PHP.SU » » Работа с СУБД » Запрос к БД

Страниц (1): [1]
 

1. mrKotik - 05 Февраля, 2019 - 18:52:13 - перейти к сообщению
Добрый вечер, программисты. Возник вопрос, возможно ли получить записи которых нет в БД


SELECT `id` FROM `users` where `id` NOT IN (1,2,3,4,5,6)

В базе есть 1,2,3,6


А возможно ли получить, что id 4,5 что-бы вернуло после запроса?
2. Мелкий - 05 Февраля, 2019 - 19:02:26 - перейти к сообщению
Зависит от СУБД.
3. mrKotik - 05 Февраля, 2019 - 19:04:02 - перейти к сообщению
Мелкий пишет:
Зависит от СУБД.
MysqL сейчас так работает выводит, запись которая лишняя, а мне на оборот надо которой нет
4. Мелкий - 05 Февраля, 2019 - 19:30:53 - перейти к сообщению
нормально не умеет.
единственный костыль - собрать через большой подзапрос с union all нужные значения и через not exixts подзапрос выкинуть те что есть в таблице.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT pt.i FROM (
  2. SELECT 1 AS i
  3. UNION ALL
  4. SELECT 5
  5. /*...*/
  6. ) pt
  7. WHERE NOT EXISTS (SELECT id FROM users WHERE id = pt.i)
5. teleoperator27 - 05 Февраля, 2019 - 19:38:09 - перейти к сообщению
Мелкий, а если так

CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TEMPORARY TABLE `temp` (`id` INT NOT NULL);
  2. INSERT INTO `temp` (`id`) VALUES (1),(2),(3),(4),(5),(6);
  3. SELECT `id` FROM `temp` WHERE `temp`.`id` NOT IN (SELECT `id` FROM `users`);   
6. mrKotik - 05 Февраля, 2019 - 19:39:40 - перейти к сообщению
Спасибо, буду пробивать.
7. Мелкий - 05 Февраля, 2019 - 20:30:09 - перейти к сообщению
teleoperator27, в принципе тоже можно. Вряд ли not in тут хороший выбор, впрочем. Хотя проверять надо

 

Powered by ExBB FM 1.0 RC1