Sql-Standard

“<> ANY(…)”和“NOT = ANY(…)”之間的區別?

  • October 31, 2018

你能解釋一下這兩個運營商之間的區別嗎?

sID != smth 而不是 sID = smth。

乍一看,他們似乎完全平等。但他們給出了不同的結果。

例子

NOT sid = ANY (SELECT ...) 

相當於:

sid &lt;&gt; ALL (SELECT ...)  

所以,你的兩個條件不一樣。


ALL並且ANY操作員對我(和很多人)來說很難使用。我認為這就是有多少人更喜歡使用IN, NOT IN,這EXISTSNOT EXISTS產生更多不言自明的程式碼。

如果您確實想與他們合作,請認為這sid = ANY (SELECT ...)意味著“檢查是否sid等於任何(某些)(select...)值”。

然後NOT sid = ANY (SELECT ...)是相反的。但是“等於其中任何一個”的反義詞是“對所有這些都不同”(而不是“與其中一些不同”)。

引用自:https://dba.stackexchange.com/questions/143422