【问题标题】:SQL request - search query not workingSQL 请求 - 搜索查询不起作用
【发布时间】:2026-02-15 22:35:01
【问题描述】:

在 sql 表中,我有字段:namedescriptionlanguage

我的语言字段的值如下:“en-GB”或“fr-FR”。

SELECT * FROM items WHERE `name` LIKE '%yellow%' OR `description` LIKE '%yellow%' AND `language` = 'en-GB';

搜索字词yellow的结果正常。但我也得到了具有语言 fr-FR 的结果,但在我的查询中我设置为语言 en-GB

我在w3c 上搜索过查询,我认为带有“like”的部分是正确的。

我在这里做错了什么?

【问题讨论】:

    标签: sql search


    【解决方案1】:

    使用括号

    SELECT * FROM items 
    WHERE (`name` LIKE '%yellow%' OR `description` LIKE '%yellow%') AND `language` = 'en-GB';
    

    【讨论】:

      【解决方案2】:

      您需要使用括号,因为首先计算“OR”运算,而您期望“AND”运算符在该位置。

      SELECT   * 
      FROM     items 
      WHERE    (`name` LIKE '%yellow%' OR `description` LIKE '%yellow%') 
          AND  `language` = 'en-GB'
      

      【讨论】:

        【解决方案3】:

        language放到where前面

        SELECT * FROM items WHERE `language`='en-GB' AND (`name` LIKE '%yellow%' OR `description` LIKE '%yellow%');
        

        【讨论】: