2

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

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

它返回“from”为= 1且“to”= 1的所有值,而不是“status”为= 1的一个或另一个

我希望这不会太混乱。

谢谢。

4

1 回答 1

3

OR 运算符的优先级低于 AND [1]。因此,表达式的计算如下:

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

您可能想要的是:

SELECT * FROM "friends" WHERE ("from" = '1' OR "to" = '1') AND "status" = '1'
于 2013-08-05T22:57:30.060 回答