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

mysqlにwhere条件を無視させる

    SELECT *
    FROM foo
    WHERE id = $id
    AND ( bar = $baz OR $baz [equals null, empty string, zero, whatever] )
    

    MySQLが短絡評価 を使用したことがあるかどうかはわかりません。 実行計画では、次のように、より安価な比較を最初に行うことが有益な場合があります。

    SELECT *
    FROM foo
    WHERE id = $id
    AND ( $baz [equals null, empty string, zero, whatever] OR bar = $baz )
    

    この方法論は複数のパラメーターで使用できます。

    SELECT *
    FROM foo
    WHERE id = $id
    AND ( $baz [equals null, empty string, zero, whatever] OR bar = $baz )
    AND ( $x = 0 or x = $x )
    AND ( $y IS NULL OR y = $y )
    
    -- etc.
    


    1. SQL-最大値の列を持つ行を選択する方法

    2. 実際の自動化されたプロセスのSQLチューニングにAIを使用する方法

    3. MySQLでパイプ連結演算子を有効にする方法

    4. MySQLクエリを使用して、テーブル全体のテキストを検索して置換します