Выбрать все, кроме - MySQL

Узнай цену своей работы

Формулировка задачи:

пробую писать тест: вопрос-ответ. есть база вопросов. нужно брать рандомно один вопрос и показывать пользователю. он отвечает. записываю id этого вопроса и больше его не показываю. решил сделать это с помощью NOT IN. но почему то не выходит: если писать так, то все нормально
$q = mysql_query(SELECT * FROM test WHERE theme='".theme."' AND id NOT IN (18,19,20) ORDER BY RAND() LIMIT 1);
пробую так:
$not = "18,19,20";
$q = mysql_query(SELECT * FROM test WHERE theme='".theme."' AND id NOT IN ('$not') ORDER BY RAND() LIMIT 1);
убирается только запись с id=18. если первым поставить 20 то уберется только id=20 попробовал так:
$not = "18,19,20";
$q = mysql_query(SELECT * FROM test WHERE theme='".theme."' AND id NOT IN ('".$not."') ORDER BY RAND() LIMIT 1);
результат тот же: не показывает тот id который стоит первый в списке а если так, как советовали ранее на других сайтах:
$not = "18,19,20";
$q = mysql_query(SELECT * FROM test WHERE theme='".theme."' AND id NOT IN (".$not.") ORDER BY RAND() LIMIT 1);
то вообще не работает как быть? пробовал другие варианты, но они на мой взгляд более сложные

Решение задачи: «Выбрать все, кроме»

textual
Листинг программы
"SELECT * FROM `user` WHERE `email` = ? NOT IN ('pass')";

Объяснение кода листинга программы

В данном коде происходит выборка всех полей из таблицы user, за исключением поля email, которое не равно заданному значению и не содержится в списке NOT IN.

  1. SELECT * FROM — оператор выборки всех полей из таблицы
  2. 'user' — название таблицы, из которой производится выборка
  3. WHERE — оператор условия для выборки
  4. 'email' — название поля, которое не должно быть равно заданному значению
  5. = ? — оператор сравнения поля с заданным значением (значение указано после вопросительного знака)
  6. NOT IN ('pass') — оператор, указывающий, что поле не должно содержаться в списке значений, указанных в кавычках Таким образом, в результате выполнения данного запроса будет получена выборка всех полей из таблицы user, за исключением поля email, которое не равно заданному значению и не содержится в списке NOT IN.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы