我有一個簡單的SQL查詢:在ANSI使用多個AND和OR SQL
SELECT
w.fizz
FROM
widgets w
WHERE
w.special_id = 2394
AND w.buzz IS NOT NULL
AND w.foo = 12
在僞代碼,這WHERE
條款可以被看作是:
if(specialId == 2394 && buzz != null && foo == 12)
我現在想更改此查詢,以便它返回special_id爲2394,其buzz不爲空,且其foo爲12,或,其special_id爲2394,其等值爲'YES'且其數目爲4的所有小部件。僞代碼:
if(specialId == 2394 && (buzz != null && foo == 12) || (blah == "YES" && num == 4))
我嘗試以下,只得到錯誤:
SELECT
w.fizz
FROM
widgets w
WHERE
w.special_id = 2394
AND
(
w.buzz IS NOT NULL
AND w.foo = 12
)
OR
(
w.blah = 'YES'
AND w.num = 4
)
任何想法?提前致謝!
FYI報復性降薪是違反SO政策的。我的降價是合理的,因爲答案沒有閱讀我的問題,應該在我的問題下添加它們作爲評論。如果他們中的任何一個修改了他們的答案以反映被問到的問題,我會提高他們的答案。 – IAmYourFaja
當然,你是對的,但我並不感到驚訝的反應,你也不應該。您提出的問題至少反映了您是SQL專家的事實。你很難成爲第一個以完全錯誤地識別實際問題爲基礎提出問題的人。所以有些人會發現你的代碼存在一個明顯的問題,並且本着有用的精神向你指出。你用downvotes迴應。相反敵對。然後,你對那些真正接受你幫助的人採取非常不敬的態度! –
@DanielPratt - 在任何情況下,我的形狀或形式是否在這裏誤認了實際的問題。我是SO上最大的「幫助吸血鬼」之一(我有大約20個問題)。在問了近1000個問題之後,我不能告訴你我問了多少次問題A,只是爲了仔細閱讀/瀏覽我的問題並回答問題B.我相信這些人不會幫助我,他們正試圖通過飛行並無意識地回答問題來獲得更高的聲望。因此,我採取了懲罰那些公然無視被問到的問題的政策。 – IAmYourFaja