Выбрать все, кроме - 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);
то вообще не работает как быть? пробовал другие варианты, но они на мой взгляд более сложные

Код к задаче: «Выбрать все, кроме - MySQL»

textual
"SELECT * FROM `user` WHERE `email` = ? NOT IN ('pass')";

10   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ