Mysql
 sql >> Datenbank >  >> RDS >> Mysql

WHERE Wenn die Bedingung nicht erfüllt ist, erhalten Sie alle Werte einschließlich NULL

Ändern Sie stattdessen Ihre Bedingung wie folgt:

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

Die Idee ist, dass wenn @LastName ='Alle', dann sollte Ihre Suchanfrage keine Filter haben. Die 1=1-Bedingung ist immer wahr und sollte zusammen mit der anderen Prüfung alle Ergebnisse zurückgeben. Der andere Weg, den die Abfrage nehmen kann, ist das Filtern nach einem bestimmten Nachnamen, was Nullwerte definitiv ausschließen sollte.

Update:DIE Bedingung 1=1 ist überflüssig. Sie können die Bedingung wie folgt umschreiben:

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

Demo