sql >> Database >  >> RDS >> Mysql

MySQL:selecteer * uit tabel waar col IN (null, ) mogelijk is zonder OR

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

Let echter op dan OR query zal veel efficiënter zijn als de kolom is geïndexeerd:

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

Dit gebruikt ref_or_null toegangspad op de index.

Als u moet kiezen uit een lijst met waarden samen met NULLs , zet gewoon alle niet-null-waarden in de lijst en voeg een enkele toe OR IS NULL staat:

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

Dit gebruikt een index op col ook.



  1. Converteer 'time' naar 'smalldatetime' in SQL Server (T-SQL-voorbeelden)

  2. Hoe de tabel bij te werken met activeandroid na het toevoegen van een nieuwe kolom

  3. Oracle Converteer seconden naar uren:minuten:seconden

  4. hoe de volledige opgeslagen procedurecode weer te geven?