Mysql: выберите * из таблицы, где col IN (null, "") возможно без OR можно как-то сделать выбор для пустых строк и значений NULL в Mysql без использования или? select * from table where col IN (null, ""); не работает, он игнорирует нуль (или, возможно, соответствует ему со строкой "null" спасибо, П.В. Goddijn Ответ 1 SELECT * FROM mytable WHERE COALESCE(col, '') = '' Обратите внимание, однако, что запрос OR будет намного более эффективным, если индексируется столбец: SELECT * FROM mytable WHERE col = '' OR col IS NULL Это будет использовать путь доступа ref_or_null к индексу. Если вам нужно выбрать из списка значений вместе с NULLs, просто поместите все ненулевые значения в список и добавьте одно условие OR IS NULL: SELECT * FROM mytable WHERE col IN ('val1', 'val2', 'val3') OR col IS NULL Здесь также будет использоваться индекс col.
Ответ 1 SELECT * FROM mytable WHERE COALESCE(col, '') = '' Обратите внимание, однако, что запрос OR будет намного более эффективным, если индексируется столбец: SELECT * FROM mytable WHERE col = '' OR col IS NULL Это будет использовать путь доступа ref_or_null к индексу. Если вам нужно выбрать из списка значений вместе с NULLs, просто поместите все ненулевые значения в список и добавьте одно условие OR IS NULL: SELECT * FROM mytable WHERE col IN ('val1', 'val2', 'val3') OR col IS NULL Здесь также будет использоваться индекс col.