Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:wybierz * z tabeli, gdzie col IN (null, ) możliwe bez OR

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

Pamiętaj jednak, że OR zapytanie będzie znacznie wydajniejsze, jeśli kolumna zostanie zindeksowana:

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

Użyje to ref_or_null ścieżka dostępu w indeksie.

Jeśli potrzebujesz wybrać z listy wartości wraz z NULLs , po prostu umieść wszystkie wartości inne niż null na liście i dodaj pojedynczy OR IS NULL warunek:

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

Użyje to indeksu w col również.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie PHP do przesyłania pliku i dodawania ścieżki do bazy danych MySQL

  2. Uzyskaj liczbę rekordów dla wszystkich tabel w bazie danych MySQL

  3. Błąd XML w ampersand (&)

  4. Limit rekordów w środowisku roboczym mysql

  5. Zezwalaj na znaki inne niż ascii w bazie danych MySQL