Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL :sélectionnez * dans la table où col IN (null, ) possible sans OR

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

Notez cependant que OR requête sera bien plus efficace si la colonne est indexée :

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

Cela utilisera ref_or_null chemin d'accès sur l'index.

Si vous devez sélectionner dans une liste de valeurs avec NULLs , placez simplement toutes les valeurs non nulles dans la liste et ajoutez un seul OR IS NULL condition :

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

Cela utilisera un index sur col aussi.