sql >> データベース >  >> RDS >> Mysql

WHERE条件が満たされない場合は、NULLを含むすべての値を取得します

    代わりに条件をこれに変更してください:

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

    アイデアは、@LastName ='すべて'の場合、クエリにフィルタを含めることはできません。 1 =1の条件は常に真であり、他のチェックと一緒にすべての結果を返す必要があります。クエリがとることができるもう1つのパスは、特定の名前でフィルタリングすることです。これにより、null値が確実に除外されます。

    更新:1=1条件は冗長です。条件を次のように書き換えることができます:

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

    デモ



    1. MYSQL結合結果は、where句のIN()中にワイプされた結果を設定しますか?

    2. POINTを使用したMysqlの空間距離-機能しない

    3. より良い動的SQLのために避けるべき10のSP_EXECUTESQLの落とし穴

    4. phpを使用して複数言語のテキストフィールドをmysqlに保存するにはどうすればよいですか?