0

亲爱的朋友们,我有一张桌子(code_bit_table),其中有文章商店。每篇文章都有 SUBJECT,然后每篇文章都有 TITLE 和 TAGS。我想根据标题或标签字段中的任何字母但在单个主题中搜索表格。例如,我只想搜索 PHP,而在 PHP 中,我想检查 TITLE 或 TAGS 字段是否包含一些文本(例如数组)。

问题是我的查询也返回了其他主题。这可能是一个非常简单的问题,但让我很困惑

 SELECT * FROM code_bit_table WHERE `subject` = 'PHP'  AND `tags` LIKE 
   '%text%' OR `title` LIKE '%text%'

该查询工作正常,但为什么它返回其他主题,如 jQuery 等也存在于同一个表中。

4

4 回答 4

1

您必须将tagsand分组title

SELECT * 
  FROM code_bit_table 
 WHERE `subject` = 'PHP'  AND 
       (`tags` LIKE '%text%' OR 
        `title` LIKE '%text%');
于 2012-08-01T11:23:46.010 回答
1

括号是你的朋友。

SELECT *
FROM code_bit_table
WHERE `subject` = 'PHP'
    AND (`tags` LIKE '%text%'
          OR `title` LIKE '%text%'
    )
于 2012-08-01T10:58:58.820 回答
1
     SELECT * FROM code_bit_table WHERE `subject` = 'PHP'  AND (`tags` LIKE 
   '%text%' OR `title` LIKE '%text%')
于 2012-08-01T10:59:06.583 回答
1

您必须将左括号'('&')'作为OR部分覆盖AND运算符的优先级:

SELECT * 
FROM code_bit_table 
WHERE `subject` = 'PHP'  AND 
      (`tags` LIKE '%text%' OR `title` LIKE '%text%');
于 2012-08-01T10:59:36.120 回答