Enklere, kortere, hurtigere: EXISTS
.
IF EXISTS (SELECT 1 FROM people p WHERE p.person_id = my_person_id) THEN
-- do something
END IF;
Forespørgselsplanlæggeren kan stoppe ved den første række fundet - i modsætning til count()
, som vil scanne alle (matchende) rækker uanset. Gør en forskel med store borde. Forskellen er lille for en betingelse i en unik kolonne:kun én række kvalificerer sig, og der er et indeks til hurtigt at slå det op.
Du kan bare bruge en tom SELECT
liste:
IF EXISTS (SELECT FROM people p WHERE p.person_id = my_person_id) THEN ...
SELECT
listen har ingen indflydelse på resultatet af EXISTS
. Kun eksistensen af mindst én kvalificerende række har betydning.