2016-05-16 158 views
2

我想写书,查询和=条件:Postgres的查询与LIKE和不等于

SELECT * 
FROM posts 
WHERE title LIKE 'term%' 
    OR NAME LIKE 'term%' 
AND post_type != 'type'; 

然而,查询结果将不被post_type过滤。我的语法有什么问题吗?

回答

2

您可能需要括号,因为AND具有运算符优先级。

SELECT * 
FROM posts 
WHERE (title LIKE 'term%' OR NAME LIKE 'term%') 
    AND post_type != 'type'; 

因为现在没有括号你有

SELECT * 
FROM posts 
WHERE title LIKE 'term%' 
    OR (  NAME LIKE 'term%' 
     AND post_type != 'type'); 
+0

这就是绝招!谢谢。如果可以的话,我会投票赞成 – nateM

+0

如果有足够的代表,您可以接受答案并注册成功。 –