17. maj 2006 - 09:08
Der er
1 løsning
select og exists - brug af select 1
JEg har set at følgende syntax benyttet i forbindelse med EXISTS
UPDATE T SET (f1,f2,f3,f4,f5) = (SELECT f1,f2,f3,f4,f5 FROM S WHERE s.x1 = 1)
WHERE T = something
AND EXISTS (SELECT 1 FROM S WHERE s.x1 = 1)
altså benyttes 1 istedet for felt listen. Er dette en god/rigtig måde at se om der findes en record som matcher kriterierne ?
Finten ved at bruge EXISTS, frem for den så ofte sete konstruktion med
'WHERE count(*) > 0', er at man, hvis man kun er interesseret i at vide om en record findes eller ej, slipper for at gennemløbe hele tabellen, men kan stoppe, så snart man har fundet den første record.
- Og det kan jo betyde en del, hvis tabellen indeholder en mulliard rækker, og feltet ikke er indekseret!
Om man bruger 1 eller 'Dummy' eller NULL eller 'Blåhval' er i denne sammenhæng ligegyldigt...:-)