Maison >base de données >tutoriel mysql >Comment la priorité des opérateurs affecte-t-elle les résultats des requêtes MySQL avec AND et OR ?

Comment la priorité des opérateurs affecte-t-elle les résultats des requêtes MySQL avec AND et OR ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-25 18:46:10262parcourir

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

Prépondérance des opérateurs booléens dans MySQL

Les requêtes exploitent souvent des opérateurs logiques comme OR et AND pour filtrer et récupérer des données spécifiques. Comprendre la priorité de ces opérateurs est crucial pour garantir que les requêtes s'exécutent comme prévu.

Dans MySQL, la priorité des opérateurs 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, les 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, le Les opérateurs OR et AND ont la même priorité. Cette requête peut donc ê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. De gauche à droite évaluation :

    (display = 1 OR display = 2) AND (content LIKE "%hello world%") OR (tags LIKE "%hello world%" OR title LIKE "%hello world%")

Pour éviter toute ambiguïté, il est recommandé d'utiliser des parenthèses pour regrouper les expressions et définir explicitement la priorité des opérateurs. Par exemple :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn