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/27663976/

相关文章:

php - 在读取第一行后使用 fgetcsv 获取额外的逗号和引号

sql - MySQL:删除 Left Join 上的重复列,3 个表

mysql - 当外键相似时如何获取单行

mysql - SQL if 语句

sql - 算法:为您可能喜欢的电影建立推荐

mysql - 是否有另一个查询的 'SHOW CREATE TABLE'

java - 如何通过 Hibernate 插入多对多关系的关联表?

php - 将值添加到具有已设置值的数据库列

c# - 带有括号的 FROM 子句的查询中的语法错误(缺少运算符)

java - HQL连接函数