Mysql
 sql >> Base de données >  >> RDS >> Mysql

WHERE Si la condition n'est pas remplie, obtenir toutes les valeurs, y compris NULL

Remplacez votre condition par celle-ci :

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

L'idée est que lorsque @LastName ='All' alors votre requête ne devrait pas avoir de filtres. La condition 1=1 sera toujours vraie et, avec l'autre vérification, devrait renvoyer tous les résultats. L'autre chemin que la requête peut emprunter est le filtrage par un nom de famille spécifique, qui doit définitivement exclure les valeurs nulles.

Mise à jour :LA condition 1=1 est redondante. Vous pouvez réécrire la condition comme :

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

Démo