使用LIKE和不等于运算符的Postgres查询

6

我正在尝试编写一个带有LIKE和!=条件的查询:

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

然而,查询结果并没有按照文章类型进行过滤。我的语法有什么问题吗?
1个回答

16

你可能需要括号,因为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' );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接