"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como a prioridade de operação e / ou em MySQL afeta os resultados da consulta?

Como a prioridade de operação e / ou em MySQL afeta os resultados da consulta?

Postado em 2025-04-14
Navegar:182

How Does Operator Precedence Affect MySQL Query Results with AND and OR?

preponderância de operadores booleanos em consultas MySQL

frequentemente aproveitam os operadores lógicos como ou e para filtrar e recuperar dados específicos. Compreender a precedência desses operadores é crucial para garantir que as consultas sejam executadas conforme o pretendido. A documentação do MySQL fornece uma lista abrangente de níveis de precedência do operador, com os operadores no topo da lista com maior precedência. Onde display = 1 ou display = 2 e conteúdo como "%hello world%" ou tags como "%hello world%" ou título como "%hello world%";

de acordo com a documentação, a OR e e os operadores têm a mesma precedência. Portanto, esta dúvida pode ser interpretada de duas maneiras:

SELECT * FROM tablename
WHERE display = 1 OR display = 2 AND content LIKE "%hello world%" OR tags LIKE "%hello world%" OR title LIKE "%hello world%";
parênteses First:

    ((display = 1) ou (display = 2) e ((conteúdo como "%hello world%") ou (tags como "%Hello") ou ") ou (conteúdo"%"Hello") ou (tags como "%Hello") mundo%")
  1. de esquerda para a direita:
    SELECT * FROM tablename
    WHERE display = 1 OR display = 2 AND content LIKE "%hello world%" OR tags LIKE "%hello world%" OR title LIKE "%hello world%";
  2. (display = 1 ou exibição = 2) e (conteúdo] e"%hello world ") ou (tags como"%hello world "ou title como"%e hellow [] [] [e hello iva ") ou (tags como"%hello "ou title como"%hellow) [[ Ambiguidade, é a melhor prática usar parênteses para agrupar expressões e definir explicitamente a precedência do operador. Por exemplo:
  3. selecione * do tableName ONDE (display = 1 ou exibição = 2) e (Conteúdo como "%Hello World%" ou tags como "%Hello World%" ou título como "%Hello World%");

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3