Значение 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)