2

なぜこの構造が機能しないのかわかりません。postgres を使用するのはこれが初めてで、誰かが私を助けてくれることを望んでいました。

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

「ステータス」が = 1 のいずれかではなく、「from」が = 1 で「to」が 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 に答える