sql >> Databáze >  >> RDS >> Mysql

MySQL:vyberte * z tabulky, kde je možný col IN (null, ) bez OR

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

Všimněte si však, že OR dotaz bude mnohem efektivnější, pokud je sloupec indexován:

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

To bude používat ref_or_null přístupová cesta na indexu.

Pokud potřebujete vybrat ze seznamu hodnot spolu s NULLs , prostě vložte všechny hodnoty, které nejsou null, do seznamu a přidejte jeden OR IS NULL podmínka:

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

To použije index na col také.



  1. Nejlepší způsob, jak získat PK Guid vloženého řádku

  2. Připojte tabulku s MAX hodnotou z jiné

  3. Jak databáze podporují podniky elektronického obchodu

  4. Připojení Orbeon Forms Postgres DB