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

GDZIE Jeśli warunek nie jest spełniony, uzyskaj wszystkie wartości, w tym NULL

Zamiast tego zmień swój stan na następujący:

where (@LastName = 'All' and 1=1) or (LastName = @LastName)

Chodzi o to, że kiedy @LastName ='All' to zapytanie nie powinno zawierać żadnych filtrów. Warunek 1=1 będzie zawsze spełniony i razem z innym sprawdzeniem powinien zwrócić wszystkie wyniki. Inną ścieżką, jaką może obrać zapytanie, jest filtrowanie według określonego nazwiska, co zdecydowanie powinno wykluczać wartości null.

Aktualizacja:Warunek 1=1 jest nadmiarowy. Możesz przepisać warunek jako:

where (@LastName = 'All') or (LastName = @LastName)

Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy w MySQL można mieć widok indeksowany?

  2. mysql trwa zbyt długo, aby wstawić wiersze

  3. Jak mogę ograniczyć miejsca dziesiętne funkcji AVG w sql tylko do 2?

  4. Konwertuj zapytanie z MySql na Sqlite

  5. jak uzyskać pojedynczą wartość z tablicy w codeigniter