По-просто, по-кратко, по-бързо: EXISTS
.
IF EXISTS (SELECT 1 FROM people p WHERE p.person_id = my_person_id) THEN
-- do something
END IF;
Инструментът за планиране на заявки може да спре на първия намерен ред - за разлика от count()
, което ще сканира всички (съвпадащи) редове независимо. Прави разлика с големите маси. Разликата е малка за условие за уникална колона:само един ред отговаря на изискванията и има индекс, който да го търси бързо.
Можете просто да използвате празен SELECT
списък:
IF EXISTS (SELECT FROM people p WHERE p.person_id = my_person_id) THEN ...
SELECT
списъкът няма влияние върху резултата от EXISTS
. Само наличието на поне един квалификационен ред е от значение.