ホームページ >データベース >mysql チュートリアル >演算子の優先順位は、クエリ内の MySQL の「OR」および「AND」ロジックにどのような影響を与えますか?
MySQL では、OR や AND などの論理演算子の演算順序によって、複雑なクエリの解釈が決まります。この記事では、優先順位ルールと、それがクエリ結果に与える影響について説明します。
MySQL ドキュメントには、次のような演算子の優先順位の包括的なリストが記載されています。
INTERVAL BINARY, COLLATE ! - (unary minus), ~ (unary bit inversion) ^ *, /, DIV, %, MOD -, + <<, >> & | = (comparison), <=, >=, >, <, <>, !=, IS, LIKE, REGEXP, IN BETWEEN, CASE, WHEN, THEN, ELSE NOT &&, AND XOR ||, OR = (assignment), :=
によるとこの優先順位に従って、次のクエリが解釈されます。
SELECT * FROM tablename WHERE display = 1 OR ( display = 2 AND content LIKE "%hello world%" ) OR tags LIKE "%hello world%" OR title = "%hello world%"
上記のクエリは、
WHERE 句は次の順序で評価されます:
明確な解釈を保証するために、括弧を使用することをお勧めします明示的に。例:
SELECT * FROM tablename WHERE ((display = 1) OR (display = 2)) AND ((content LIKE "%hello world%") OR (tags LIKE "%hello world%") OR (title LIKE "%hello world%"))
このクエリは、次の条件のいずれかを満たしている場合に行がフェッチされることを確認します:
以上が演算子の優先順位は、クエリ内の MySQL の「OR」および「AND」ロジックにどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。