sql >> Base de Datos >  >> RDS >> Mysql

MySQL:seleccione * de la tabla donde col IN (nulo,) posible sin OR

SELECT  *
FROM    mytable
WHERE   COALESCE(col, '') = ''

Tenga en cuenta, sin embargo, que OR la consulta será mucho más eficiente si la columna está indexada:

SELECT  *
FROM    mytable
WHERE   col = '' OR col IS NULL

Esto usará ref_or_null ruta de acceso en el índice.

Si necesita seleccionar de una lista de valores junto con NULLs , simplemente coloque todos los valores no nulos en la lista y agregue un solo OR IS NULL condición:

SELECT  *
FROM    mytable
WHERE   col IN ('val1', 'val2', 'val3') OR col IS NULL

Esto usará un índice en col también.