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

相关文章:

php - 使用 jQuery 在 PHP/HTML 中输出相关的嵌套表

android - (Android) 不断收到 SQL 语句错误

C# 在不同格式之间更改日期

c# - SQL如何将两个日期之间一小时内的事件求和并显示在一行中

java - 尝试通过SIngleton模式连接MySQL数据库

php - MySQL 查询中的多个 LIKE 比较? - MySQL, PHP

php - 从多个变量循环查询?

mysql - mysql用逗号分割字符串

mysql - 根据一列值的计数过滤查询结果?

sql - ORA-01791 : not a SELECTed expression