在做LIKE时忽略记录

时间:2011-05-28 22:41:45

标签: mysql select

我遇到了一个问题,我正在通过LIKE查询搜索数据库:

SELECT description,
       title,
       hidden
FROM paragraphs
WHERE description LIKE '%some search%'
OR title LIKE '%some search%'
AND hidden = 0

即使在搜索时,如果hidden的值为1,也应该完全忽略记录,因为我会收到隐藏的结果。

如何查询hidden 0是否1,而{{1}}查询应该跳过那些记录。

4 个答案:

答案 0 :(得分:1)

您需要使用括号重新编写查询

SELECT description,
       title,
       hidden
FROM paragraphs
WHERE 
  (description LIKE '%some search%' OR title LIKE '%some search%')
AND 
   hidden = 0

现在你应该工作

答案 1 :(得分:1)

将括号放在括号中。

SELECT description,
       title,
       hidden
FROM paragraphs
WHERE (description LIKE '%some search%' OR title LIKE '%some search%')
AND hidden = 0

答案 2 :(得分:1)

您的查询的条件部分不明确,这可能会导致您的问题。根据需要用括号对您的标准进行分组。这就是我想你想要的:

SELECT description,
       title,
       hidden
FROM paragraphs
WHERE 
    ( description LIKE '%some search%' OR title LIKE '%some search%')
AND ( hidden = 0 )

(显示与此字符串或该字符串匹配的所有项目,并且不会隐藏AND)

答案 3 :(得分:1)

SELECT description,
       title,
       hidden
FROM paragraphs
WHERE (
 description LIKE '%some search%'
 OR title LIKE '%some search%'
) AND hidden = 0