首页 > 数据库 > mysql教程 > 为什么我的 SQL 查询忽略大学过滤器,如何修复它?

为什么我的 SQL 查询忽略大学过滤器,如何修复它?

Patricia Arquette
发布: 2025-01-19 10:02:09
原创
952 人浏览过

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

SQL 查询故障排除:大学过滤器问题

此 SQL 查询以“people”表为目标,使用多个过滤器来优化结果。 问题在于查询返回不应通过大学过滤器的记录。这源于 WHERE 子句中的运算符优先级问题。

原始查询由于 ANDOR 运算符的错误应用而受到影响。 AND 的优先级较高会导致 university='2' 条件仅错误链接到 MATCH 操作。 fnamelname 过滤器是独立评估的,会导致意想不到的结果。

解决方案涉及重组查询以强制执行正确的操作顺序:

<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>
登录后复制

通过使用括号对 fnamelname 过滤器进行分组,我们确保 university='2' 条件适用于所有三个条件。 这保证了输出中仅包含来自大学“2”的至少满足一个基于名称的条件的记录。

以上是为什么我的 SQL 查询忽略大学过滤器,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板