webForumDet fria alternativet

Sortera ickealfabetiskt efter kategorivärde?

Databaser & SQLur Databashanterare & SQL

5 svar · 534 visningar · startad av bassebhu

Medlem sedan nov. 20016 480 inlägg
Frågan#1

Hallå!

Jag har en tabell där jag sätter kategorivärden för poster. När jag hämtar dessa så vill jag sortera dem efter kategorivärdet, men kan inte sortera med vanliga "ORDER BY kategori ASC" eftersom jag vill ha en bestämd ordning. Jag vet att man kan lägga kategorier i en egen tabell och ge dem numeriska sorteringsvärden, men det är så få så jag tänkte skippa det och jag vill inte heller ge dem kategorinamn i alfabetisk ordning.

Går det att köra nåt sånt här:

"ORDER BY kategori('huvudkat','blandat','data'), titel ASC"

D.v.s. först alla poster i huvudkat i titel-bokstavsordning, sedan alla i blandat och sen i data...

Tack!

Medlem sedan juni 200032 967 inlägg
#2
order by case kategori 
when 'huvudkat' then 0 
when 'blandat' then 1 
when 'data' then 2,
titel asc

mvh

Medlem sedan nov. 20016 480 inlägg
#3

Hurra! Tack! Funkar!

Hittade nåt annat precis som var såhär, men det stod att det var dåligt, är det det? :)

Deras värden i kopierade exemplet...

ORDER BY FIELD(order_status,'shipped','waiting','open')
Medlem sedan juni 200032 967 inlägg
#4

Varför skulle det vara dåligt menar du?
Jag känner inte till just den metoden - jag kan ju inget om mysql. :)

Medlem sedan nov. 20016 480 inlägg
#5

Det var nån jeppe här som sa så :)

http://pabloj.blogspot.se/2006/11/custom-ordering-for-your-results.html

Medlem sedan juni 200032 967 inlägg
#6

Det låter som att den enda anledningen till att det är kass är att det inte är standard sql - inte att resultatet på något sätt skulle bli sämre.

Jag hade nog ändå valt sättet med case, även om jag inte har något emot det andra.
Mvh

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