Значение mysql NULL, в котором в CLAUSE
как работать со значением NULL в mysql , где CLAUSE
Я пытаюсь как
SELECT * FROM mytable WHERE field IN(1,2,3,NULL)
он не работает
работает только:
SELECT * FROM mytable WHERE field IN(1,2,3) OR field IS NULL
Как я могу заставить его работать в WHERE IN
? это возможно?
Ответы
Ответ 1
Как я понимаю, вы хотите вытащить каждую запись с 1,2,3 и нулевым значением.
Я не думаю, что его можно поместить в оператор IN. Его ожидает, что значения и нуль хорошо.. не значение. Поэтому вам действительно нужно поставить OR с нулевым значением, чтобы получить желаемый результат.
Ответ 2
Возможно, эта информация из справочного руководства помогает:
Чтобы соответствовать стандарту SQL, IN возвращает NULL не только, если выражение в левой части равно NULL, но также и если в списке не найдено совпадения, а одно из выражений в списке равно NULL.
Ответ 3
Следующее утверждение должно помочь:
SELECT * FROM mytable WHERE COALESCE(field,0) IN (1,2,3,0)