webForumDet fria alternativet

manuell ORDER BY

4 svar · 485 visningar · startad av oskob

oskobMedlem sedan maj 20021 558 inlägg
#1

Hej!

Jag skulle vilja kunna sortera ett MySQL-resultat genom att ange ordningen helt manuellt, dvs att jag har ordningen sparad i en sträng i PHP (som jag skapat från en del inputs) och sen vilja få resultaten i exakt den ordningen typ såhär:

SELECT id, field FROM table WHERE id IN (1,2,3,4,5,6) ORDER BY id (3,6,4,2,1,5)

Jag vill alltså att resultatet ska komma i ordningen 3,6,4,2,1,5. Ordningen bestäms av PHP i förväg i PHP och jag vill ara kunna skicka in denna till MySQL och få raderna i exakt den ordningen.

Går det?

Tack på förhand!

voigtann1Medlem sedan juni 20019 519 inlägg
#2

Vet inte om det går i mySQL, men det känns som du lika väl kan ha en sorterings-fält i tabellen där du säger att id 3 har position 1 osv så man sortera efter den.

oskobMedlem sedan maj 20021 558 inlägg
#3

Men det är olika varje gång, bara det att det bestämms av helt andra data än vad som finns i tabellen

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Bygg upp en sträng som blir enligt denna:

order by
  case id when 3 then 0
  when 6 then 1
  when 4 then 2
  when 2 then 3
  when 1 then 4
  when 5 then 5 end
oskobMedlem sedan maj 20021 558 inlägg
#5

ah det där kan nog lösa biffen! tackar!

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