WHERE 句における SQL 演算子の優先順位について:
正確な SQL WHERE
句の評価は、演算子の優先順位を理解することにかかっています。 優先順位により、単一の式内の AND
や OR
などの演算子の評価順序が決まります。
AND
および OR
優先順位:
AND
は OR
より優先されます。 これは、結合された式では、AND
条件が OR
条件の前に処理されることを意味します。 次の例を考えてみましょう:
<code class="language-sql">SELECT [...] FROM [...] WHERE some_col IN (1,2,3,4,5) AND some_other_expr</code>
<code class="language-sql">SELECT [...] FROM [...] WHERE some_col IN (1,2,3) OR some_col IN (4,5) AND some_other_expr</code>
最初のクエリでは、some_col
は 1 から 5 までの値でなければなりません。、 は some_other_expr
を満たす必要があります。 ただし、2 番目のクエリでは、OR
条件の後に AND
条件が評価されます。 some_col
が (1,2,3) にあるかどうか、または (偽の場合) some_col
が (4,5) にあり、 some_other_expr
が true であるかどうかをチェックします。
真理値表の図:
次の真理表は、評価の違いを示しています:
some_col | some_other_expr | First Statement | Second Statement |
---|---|---|---|
1 | True | True | True |
1 | False | False | False |
3 | True | True | True |
3 | False | False | False |
4 | True | False | True |
4 | False | False | False |
5 | True | False | True |
5 | False | False | False |
が 4 または 5 の場合、結果が異なることに注目してください。この不一致は、some_col
が AND
よりも優先されることに起因します。OR
かっこによる優先順位の制御:
操作の順序を明示的に制御するには、かっこを使用して条件をグループ化します。 これはデフォルトの優先順位をオーバーライドします。 例:
<code class="language-sql">SELECT [...] FROM [...] WHERE (some_col IN (1,2,3) OR some_col IN (4,5)) AND some_other_expr</code>
条件が最初に評価され、次に OR
条件が結果に適用されます。AND
さらに読む:
演算子の優先順位の詳細については、特定のデータベース システムのドキュメントを参照してください。
以上がSQL 演算子の優先順位は WHERE 句の評価にどのように影響しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。