一尘不染

SQL语句忽略了where参数

mysql

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结合在一起以适应


阅读 387

收藏
2020-05-17

共1个答案

一尘不染

修正括号

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测试结合使用。

2020-05-17