SQL语句忽略了where参数

发布于 2021-02-02 16:35:35

SELECT * FROM people 
WHERE
university='2' 
AND MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) 
OR (fname LIKE '%box%' OR lname LIKE '%box%')

该查询允许对结果进行过滤,而不是对university='2'我将如何更新的结果进行过滤,因此它仅严格显示大学= 2时的结果

我将全文搜索与LIKE结合使用的原因是,由于全文搜索具有的最小字母数,并且由于我处于共享主机计划中,因此无法修改设置。结果,我将全文和LIKE结合在一起以适应

关注者
0
被浏览
217
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    修正括号

    SELECT * FROM people 
    WHERE
        university='2' 
        AND (MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) 
             OR fname LIKE '%box%' 
             OR lname LIKE '%box%')
    

    AND具有比更高的优先级OR,因此university = '2'只能与结合使用MATCH,而不能与fname/lname测试结合使用。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看