Problem med "avancerad" sortering av data från mysql

Permalänk
Medlem

Problem med "avancerad" sortering av data från mysql

Tjenare,

jag har problem med att sortera data som jag vill från en tabell i MySQL, tabellen ser ur som följer:
"events" = http://pastebin.com/z03nGD8g där time = datetime()

Jag vill att datan ska sorteras efter:
1. Event som pågår nu, dvs (start < now() < end)
2. Event som är på g i STIGANDE ordning
3. Event som har passerat i STIGANDE ordning

Resultat: http://pastebin.com/n4SCp0ye

Jag har provat alla möjliga sorters querys och har nu även testat göra en egen sorteringsfunktion i php med hjälp av usort() utan framgång.

Värt att notera är att om "användaren" på hemsidan inte är tvingad att fylla i "end"-tid, då sätts end = start.

Hoppas det finns någon smart en som kan klura ut detta...

Tacksam för hjälp!

MVH Simon

Permalänk
Medlem

orkar inte skriva din query här men detta är inte vidare Avancerat.

Enklaste lösningen utan att använda CASE THEN filters är att använda sig av 3 olika Select satser med Union med ett where filter & sortering.

Du kan läsa hur Union funkar här http://dev.mysql.com/doc/refman/5.0/en/union.html

Visa signatur

Speldator: Ryzen 7800X3D, 64GB DDR5, RTX 3070
Server: i7-8700k, 32GB DDR4, RTX2080
Steam deck + de fiesta konsoller.

Permalänk
Medlem

Tack för svaret, ska prova!