"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment la priorité de fonctionnement de et et ou dans MySQL affecte-t-elle les résultats de la requête?

Comment la priorité de fonctionnement de et et ou dans MySQL affecte-t-elle les résultats de la requête?

Publié le 2025-04-14
Parcourir:649

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

prépondérance des opérateurs booléens dans les requêtes mysql

les requêtes exploitent souvent les opérateurs logiques comme ou et pour filtrer et récupérer des données spécifiques. Comprendre la priorité de ces opérateurs est crucial pour garantir l'exécution des requêtes comme prévu.

Dans MySQL, la priorité de l'opérateur détermine l'ordre dans lequel les opérations sont évaluées. La documentation MySQL fournit une liste complète des niveaux de priorité des opérateurs, avec des opérateurs en haut de la liste ayant une priorité plus élevée.

Considérez la requête suivante:

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

Selon la documentation, les opérateurs OR et et ont la même priorité. Par conséquent, cette requête peut être interprétée de deux manières:

  1. parenthèses d'abord:

    ((display = 1) OR (display = 2)) AND ((content LIKE "%hello world%") OR (tags LIKE "%hello world%") OR (title LIKE "%hello world%"))
  2. Évaluation de gauche à droite:

    (display = 1 OR display = 2) AND (content LIKE "%hello world%") OR (tags LIKE "%hello world%" OR title LIKE "%hello world%")
  3. Ambiguïté, il est de la meilleure pratique d'utiliser des parenthèses pour regrouper les expressions et définir explicitement la priorité de l'opérateur. Par exemple:

select * from TableName OÙ (afficher = 1 ou afficher = 2) et (Contenu comme "% Hello World%" ou Tags comme "% Hello World%" ou titre comme "% Hello World%");

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3