Avatar billede conrad Nybegynder
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 ?
Avatar billede pgroen Nybegynder
17. maj 2006 - 10:11 #1
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...:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester