なぜこの構造が機能しないのかわかりません。postgres を使用するのはこれが初めてで、誰かが私を助けてくれることを望んでいました。
SELECT * FROM "friends" WHERE "from" = '1' OR "to" = '1' AND "status" = '1'
「ステータス」が = 1 のいずれかではなく、「from」が = 1 で「to」が 1 であるすべての値を返します。
あまり混乱しないことを願っています。
ありがとう。
なぜこの構造が機能しないのかわかりません。postgres を使用するのはこれが初めてで、誰かが私を助けてくれることを望んでいました。
SELECT * FROM "friends" WHERE "from" = '1' OR "to" = '1' AND "status" = '1'
「ステータス」が = 1 のいずれかではなく、「from」が = 1 で「to」が 1 であるすべての値を返します。
あまり混乱しないことを願っています。
ありがとう。
OR 演算子は AND [1]よりも優先順位が低くなります。その結果、式は次のように評価されます。
(
"from" = '1'
)
OR
(
"to" = '1'
AND
"status" = '1'
)
代わりにおそらく必要なのは次のとおりです。
SELECT * FROM "friends" WHERE ("from" = '1' OR "to" = '1') AND "status" = '1'