2013-08-05 137 views
2

我不知道为什么这个结构不起作用。这是我第一次和postgres合作,希望有人能帮助我。Postgres查询问题

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

它返回的所有值,其中来自哪里“从”为= 1“到” = 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' 
结果,如下的表达式求值