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

MySQL:vælg * fra tabel hvor col IN (null, ) er muligt uden OR

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

Bemærk dog end OR forespørgslen vil være meget mere effektiv, hvis kolonnen er indekseret:

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

Dette vil bruge ref_or_null adgangssti på indekset.

Hvis du har brug for at vælge fra en liste over værdier sammen med NULLs , indsæt bare alle ikke-null-værdier på listen og tilføj en enkelt OR IS NULL tilstand:

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

Dette vil bruge et indeks på col også.



  1. Råd om SQL Server-ydelse fra Brent Ozar og Pinal Dave

  2. SQL Server-transaktionsloggen, del 3:Grundlæggende logføring

  3. Kan du bruge Microsoft Entity Framework med Oracle?

  4. Postgres-serveren svarer ikke på en nodejs-anmodning