Postgres查询问题

时间:2013-08-05 22:54:54

标签: postgresql

我不确定为什么这个结构不起作用。这是我第一次使用postgres,并希望有人可以帮助我。

SELECT * FROM "friends" WHERE "from" = '1' OR "to" = '1' AND "status" = '1'

它返回所有值,其中"来自"是= 1和"到" = 1而不是一个或另一个" status"是= 1

我希望这不会让人感到困惑。

感谢。

1 个答案:

答案 0 :(得分:3)

OR运算符的优先级低于AND [1]。结果,表达式评估如下:

(
    "from" = '1'
)
OR
(
    "to" = '1'
    AND
    "status" = '1'
)

你可能想要的是:

SELECT * FROM "friends" WHERE ("from" = '1' OR "to" = '1') AND "status" = '1'