Avatar billede falslev Nybegynder
07. november 2006 - 01:19 Der er 7 kommentarer og
1 løsning

Hvordan undgår man sortering?

Jeg ønsker at lave følgende sql men den skal hente den i den rækkefølge jeg angiver:

SELECT * FROM table WHERE ID=3 OR ID=2 OR ID=5 OR ID=1;

Den skal altså hente dem så ID 3 er først efterfulgt af 2, 5 og tilsidt 1.

How??
Avatar billede arne_v Ekspert
07. november 2006 - 01:52 #1
hack:

SELECT * FROM table WHERE ID=3 OR ID=2 OR ID=5 OR ID=1 ORDER BY LOCATE(ID,'3251');
Avatar billede falslev Nybegynder
07. november 2006 - 02:01 #2
Perfekt og så her sent om natten :)

Laver du lige et svar
Avatar billede arne_v Ekspert
07. november 2006 - 02:14 #3
svar
Avatar billede arne_v Ekspert
07. november 2006 - 02:15 #4
den skal twistes lidt for at virke for id med mere end 1 ciffer
Avatar billede falslev Nybegynder
07. november 2006 - 02:24 #5
hvordan det ser det så ud?
Avatar billede coderdk Praktikant
07. november 2006 - 02:31 #6
Alternativt:

SELECT * FROM table WHERE ID=3
UNION
SELECT * FROM table WHERE ID=2
UNION
SELECT * FROM table WHERE ID=5
UNION
SELECT * FROM table WHERE ID=1;

?
Avatar billede arne_v Ekspert
07. november 2006 - 02:51 #7
... ORDER BY LOCATE(CONCAT(',',ID,','),',11,13,10,9,8,18,')

bør virke
Avatar billede falslev Nybegynder
07. november 2006 - 03:01 #8
Godt nok indviklet. Jeg er stået af, men det virker :)
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