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' 以外的结果
我该如何更新它,以便它严格只显示 University = 2 的结果
我将全文搜索与 LIKE 结合起来的原因是全文搜索具有最小字母数,并且因为我采用共享托管计划,所以无法修改设置。因此,我将全文和 LIKE 结合起来以适应
最佳答案
修正括号
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
测试。
关于mysql - SQL语句忽略where参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57963618/