Существует функция MySQL с именем COALESCE
. Возвращает первое не-1004 * значение в списке или NULL
, если нет не-1006 * значений.
Если вы, например, запустите SELECT COALESCE(NULL, NULL, -1);
, вы получите -1
назад, потому что это первое не NULL
значение.
Таким образом, хитрость заключается в том, чтобы заключить ваше выражение в COALESCE
и добавить значение в качестве последнего параметра, который вы также добавите в функцию IN
.
SELECT * FROM mytable WHERE COALESCE(field,-1) IN (1,2,3,-1)
Он будет совпадать, только если поле равно 1,2 или 3, или если поле равно NULL
.