SQL语句忽略where参数

时间:2014-12-27 02:56:37

标签: mysql sql phpmyadmin

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

任何想法都会非常有帮助!

1 个答案:

答案 0 :(得分:7)

修正括号

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次测试。