Ja, de är likadana. exists
kontrollerar om det finns minst en rad i underfrågan. Om så är fallet utvärderas det till true
. Kolumnerna i underfrågan spelar ingen roll på något sätt.
Enligt MSDN, exists
:
Anger en underfråga för att testa förekomsten av rader.
Och Oracle:
Ett EXISTS-villkor testar om det finns rader i en underfråga.
Kanske är MySQL-dokumentationen ännu mer förklarande:
Traditionellt börjar en EXISTS-underfråga med SELECT *, men den kan börja med SELECT 5 eller SELECT kolumn1 eller något alls. MySQL ignorerar SELECT-listan i en sådan underfråga, så det gör ingen skillnad.