webForumDet fria alternativet

Sortera efter id, som dom ligger i querystringen

5 svar · 190 visningar · startad av edebro

edebroMedlem sedan aug. 2001261 inlägg
#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!

PeeerMedlem 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.

LarsGMedlem 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
PeeerMedlem sedan mars 20025 907 inlägg
#4

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

edebroMedlem 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!?

LarsGMedlem 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.)

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)