webForumDet fria alternativet
Logga in / Bli medlem

Sortera efter id, som dom ligger i querystringen

Databaser & SQL

5 svar · 192 visningar · startad av edebro

Medlem sedan aug. 2001261 inlägg
Trådstart#1

Jag har en querystring som kan se ut på följande sätt;

editID=12,2,231,1,25,948

Dom kommaseparerade värdena är ID:n i databasen. Som ni ser är dom inte i ordning.
Det jag vill är att visa posterna i denna ordning, dvs med id 12 först, sen 2, 231 osv.

Hur skriver jag då i SQL satsen?

[edit] Jag använder en MySQL-databas

Tacksam för snabba svar!

Medlem sedan mars 20025 907 inlägg
#2

Tror inte du kan sortera datan på det sättet i sql-satsen. Det får du nog fixa i din applikation.

Medlem sedan dec. 200012 464 inlägg
#3

Å jo det går.

order by case id
when 12 then 1
when 2 then 2
when 231 then 3
when 1 then 4
when 25 then 5
when 948 then 6 end
Medlem sedan mars 20025 907 inlägg
#4

Man lär så länge man lever. :)

Medlem sedan aug. 2001261 inlägg
#5

Underbart LarsG. Jag kunde nästan ana att du skulle ha någon snärtig lösning ;)
Antar att detta även fungerar på MS SQL och Access!?

Medlem sedan dec. 200012 464 inlägg
#6

Det fungerar i SQL server men inte i Access.

Access har en funktion som heter iif med mostvarande funktionalitet men annorlunda syntax.

order by iif(id=25,1,iif(id=2,2,iif(id=32,3,0)))

Det blir lite stökigare att skriva och det finns även en begränsning på hur många nivåer man kan nästla.

Det finns även något som heter switch (vars syntax jag inte kan.)

251 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)