mysql - SQL语句忽略where参数

标签 mysql sql

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/

相关文章:

MySQL - 如何查询树?

sql - 加入多个条件

c# - 如何更新在另一个表中作为外键引用的表的主键?

SQLite - 根据特定的计算总和过滤记录

mysql - 将两个表分组到一个查询中

mysql - 我需要有关多对多关系的表结构的帮助

php - 如何从数据库中获取行列表

sql - 仅将 Snowflake SQL 查询中的最后一条语句返回到 R

sql - 面向对象的程序员如何了解数据库驱动的编程?

php - 带有数据库的 Codeigniter 下拉菜单