bassebhuMedlem sedan nov. 20016 480 inlägg Hej!
Jag söker ett bra sätt att styra vilken ordning poster ska sorteras i beroende på vilket datum händelser ska inträffa, men det finns undantag.
Alla poster innehåller ett datumfält med ett datum då något inträffar.
Jag vill sortera så att den närmaste händelsen framåt i tiden hamnar först, därefter nästföljande och nästföljande efter den etc. När det inte finns några fler nya händelser så ska alla poster med gamla händelser radas upp efter det, dessa i ordningen äldst sist.
Om det är den 20:e idag så ska det alltså se ut såhär:
21:a
22:a
24:e
25:e
19:e
10:e
etc.
Och en fråga utöver detta. Om jag vill att händelsen den 24:e ska vara speciell, finns det något smidigt sätt för att den ska hamna först, fram till att den har passerats? Detta troligen med ett extra fält då, som innehåller ett datum/värde?
Taxi!
LarsGMedlem sedan dec. 200012 464 inlägg order by case when dateColumn > current_date then 0 else 1 end, dateColumn
24:e hanteras pss.
bassebhuMedlem sedan nov. 20016 480 inlägg Det funkade nästan helt som jag tänkte!
Om det är den 20:e idag så ska det alltså se ut såhär:
21:a
22:a
24:e
25:e
19:e
10:e
etc.
Det gjorde det nästan och det blev som jag tänkte även om det är den 9:e idag.
Däremot om det är den 26:e idag så hamnar de vad jag förstår med de tidigaste händelserna först. De händelser som har passerats ska hamna med de senaste händelserna först.
Jag försökte modifiera din kod, men då jag inte vet vad allt står för var det lite att vifta i luften. Jag antar att en DESC ska in någonstans. Dock inte här märkte jag:
order by case when dateColumn > current_date then 0 else 1 end, dateColum DESC
(dateColumn är av typen datetime om det spelar in. current_date kanske klarar av det ändå)
Tackar!
bassebhuMedlem sedan nov. 20016 480 inlägg Det kanske inte ens är möjligt att göra en sån snurr-sortering?
LarsGMedlem sedan dec. 200012 464 inlägg order by
case when dateColumn > current_date then 0 else 1 end,
case when dateColumn > current_date then dateColumn end asc,
case when dateColumn <= current_date then dateColumn end desc