Выбрать все, кроме - MySQL
Формулировка задачи:
пробую писать тест: вопрос-ответ. есть база вопросов. нужно брать рандомно один вопрос и показывать пользователю. он отвечает. записываю id этого вопроса и больше его не показываю. решил сделать это с помощью NOT IN. но почему то не выходит:
если писать так, то все нормально
пробую так:
убирается только запись с id=18. если первым поставить 20 то уберется только id=20
попробовал так:
результат тот же: не показывает тот id который стоит первый в списке
а если так, как советовали ранее на других сайтах:
то вообще не работает
как быть? пробовал другие варианты, но они на мой взгляд более сложные
$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);
$not = "18,19,20"; $q = mysql_query(SELECT * FROM test WHERE theme='".theme."' AND id NOT IN ('".$not."') 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);
Решение задачи: «Выбрать все, кроме»
textual
Листинг программы
"SELECT * FROM `user` WHERE `email` = ? NOT IN ('pass')";
Объяснение кода листинга программы
В данном коде происходит выборка всех полей из таблицы user
, за исключением поля email
, которое не равно заданному значению и не содержится в списке NOT IN
.
SELECT * FROM
— оператор выборки всех полей из таблицы'user'
— название таблицы, из которой производится выборкаWHERE
— оператор условия для выборки'email'
— название поля, которое не должно быть равно заданному значению= ?
— оператор сравнения поля с заданным значением (значение указано после вопросительного знака)NOT IN ('pass')
— оператор, указывающий, что поле не должно содержаться в списке значений, указанных в кавычках Таким образом, в результате выполнения данного запроса будет получена выборка всех полей из таблицыuser
, за исключением поляemail
, которое не равно заданному значению и не содержится в спискеNOT IN
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д