Mysql查询解决方案

时间:2012-08-01 10:56:43

标签: php mysql

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

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

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

查询工作正常,但为什么它返回同样的表中存在的jQuery等其他主题。

4 个答案:

答案 0 :(得分:1)

圆括号是你的朋友。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

您必须将tagstitle分组。

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