Próbuję dowiedzieć się, czy wiersz istnieje w tabeli. Korzystając z MySQL, lepiej wykonać takie zapytanie:
SELECT COUNT(*) AS total FROM table1 WHERE ...
i sprawdź, czy suma jest różna od zera, czy lepiej jest wykonać takie zapytanie:
SELECT * FROM table1 WHERE ... LIMIT 1
i sprawdź, czy zostały zwrócone jakieś wiersze?
W obu zapytaniach klauzula WHERE używa indeksu.
...EXISTS( SELECT 1/0 FROM someothertable)
. W przypadku SQL Server i Oracle - użycie *, 1 lub NULL nie ma znaczenia, ponieważ ISTNIEJE testuje tylko wartość logiczną na podstawie 1+ zgodnych kryteriów WHERE.