Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:seleziona * dalla tabella dove col IN (null, ) è possibile senza OR

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

Nota, tuttavia, rispetto a OR la query sarà molto più efficiente se la colonna è indicizzata:

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

Questo utilizzerà ref_or_null percorso di accesso all'indice.

Se è necessario selezionare da un elenco di valori insieme a NULLs , inserisci tutti i valori non null nell'elenco e aggiungi un singolo OR IS NULL condizione:

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

Questo utilizzerà un indice su col anche.