Maison > base de données > tutoriel mysql > Pourquoi ma requête SQL ignore-t-elle le filtre universitaire et comment puis-je y remédier ?

Pourquoi ma requête SQL ignore-t-elle le filtre universitaire et comment puis-je y remédier ?

Patricia Arquette
Libérer: 2025-01-19 10:02:09
original
952 Les gens l'ont consulté

Why is my SQL query ignoring the university filter, and how can I fix it?

Dépannage d'une requête SQL : problème de filtre universitaire

Cette requête SQL cible la table "people", en utilisant plusieurs filtres pour affiner les résultats. Le problème est que la requête renvoie des enregistrements qui ne devraient pas passer le filtre universitaire. Cela provient de problèmes de priorité des opérateurs dans la clause WHERE.

La requête d'origine souffre d'une application incorrecte des opérateurs AND et OR. La priorité plus élevée de AND fait que la condition university='2' est liée de manière incorrecte uniquement à l'opération MATCH. Les filtres fname et lname sont évalués indépendamment, conduisant à des résultats inattendus.

La solution consiste à restructurer la requête pour appliquer le bon ordre des opérations :

<code class="language-sql">SELECT *
FROM people
WHERE
    university='2'
    AND (
        MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE)
        OR fname LIKE '%box%'
        OR lname LIKE '%box%'
    );</code>
Copier après la connexion

En regroupant les filtres fname et lname à l'aide de parenthèses, nous nous assurons que la condition university='2' s'applique aux trois critères. Cela garantit que seuls les enregistrements de l'université « 2 » satisfaisant au moins une des conditions basées sur le nom sont inclus dans la sortie.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal