【问题标题】:SQL statement is ignoring where parameterSQL 语句忽略 where 参数
【发布时间】:2015-02-24 04:04:45
【问题描述】:
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 以适应

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    修正括号

    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 测试结合使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      相关资源
      最近更新 更多