Avatar billede poull Nybegynder
25. september 2003 - 21:53 Der er 6 kommentarer og
1 løsning

Vælge flere af samme record

Jeg har en tabel som simpleficeret kunne se sådan ud:

- handle (varchar(30))
- text (mediumtext)

Jeg ønsker at kunne vælge flere af den samme rælle på en gang. Fx:
SELECT * FROM tabel WHERE handle = 'side1'

Der findes kun en record med det handle men jeg ønsker at kunne vælge den flere gange. Dette kan måske virke underligt hvorfor jeg ønsker det men sagen er at jeg vælger flere record af gangen og i de fleste tilfælde kommer det samme handle ikke flere gange .. men nogle gange er der 2-3 af det samme handle og så skal der også komme 2-3 records ud.
Avatar billede arne_v Ekspert
25. september 2003 - 22:03 #1
Der gør der også med den SQL du har postet.

Den vil finde alle records (0, 1 eller 217) hvor handle har
værdien 'side1'.
Avatar billede poull Nybegynder
25. september 2003 - 22:05 #2
nej for der findes kun 1 * record hvor handle = 'side1' .. men jeg ønsker at få den valgt tre gange ... Desuden er mit handle id'et på recorden.
Avatar billede arne_v Ekspert
25. september 2003 - 22:12 #3
Hvis der er 1 record med handle='side1' så får du 1 record.

Hvis der er 3 records med handle='side1' så får du 3 records.

Hvis der er 1 record med handle='side1' og du vil have 3 records, hvordan
skal den så bestemme om og hvor mange ?
Avatar billede poull Nybegynder
25. september 2003 - 22:21 #4
ok .. jeg har en liste over handle's den skal hente .. og den skal hente en record for hver punkt på listen. og hvis der er tre punkter på listen med ens handle, så er det lidt vigtig at den også henter 3 ens records ud :)

så fx hvis jeg har en liste med:
side1
side3
side1

så skal jeg gerne have 3 records som passer til det :) Denne dur jo ikke:
SELECT * FROM tabel WHERE handle = 'side1' OR handle = 'side3' OR handle = 'side1'
Avatar billede arne_v Ekspert
25. september 2003 - 22:23 #5
Nej den leverer kun 2 records.

(SELECT * FROM tabel WHERE handle = 'side1')
UNION
(SELECT * FROM tabel WHERE handle = 'side3')
UNION
(SELECT * FROM tabel WHERE handle = 'side1')

bør returnere 3.
Avatar billede poull Nybegynder
25. september 2003 - 22:35 #6
Dit eksempel virker ikke helt. Hvis jeg ændre den til:
SELECT * FROM tabel WHERE handle = 'side1'
UNION ALL
SELECT * FROM tabel WHERE handle = 'side3'
UNION ALL
SELECT * FROM tabel WHERE handle = 'side1'

Så virker den fint .. så svar lige .. du fandt den kommando jeg ikke kunne finde ;)
Avatar billede arne_v Ekspert
25. september 2003 - 22:37 #7
svar
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