Avatar billede jammerlab Nybegynder
08. februar 2006 - 22:51 Der er 9 kommentarer og
1 løsning

ORDER BY i mysql

Hey derude... i min database har jeg 3 felter... dato måned og år... kan jeg i en mysql string lave en order by dato/måned/år så den sortere på denne måde?? I såfald hvordan?
Avatar billede pidgeot Nybegynder
08. februar 2006 - 22:59 #1
SELECT ... ORDER BY felt1, felt2, felt3

Hvis du skal have sorteret de ældste datoer først ville det altså blive

SELECT ... ORDER BY aar, maaned, dag

Det ville dog være betydeligt nemmere om du i stedet brugte en DATE eller DATETIME, så du kunne have det hele i et felt.
Avatar billede jammerlab Nybegynder
08. februar 2006 - 23:01 #2
Ja men der gemmes en tid på hvornår aftalen oprettes men der indtastet en anden tid periode... det er en booking til en kalender... så selvom jeg indtaster noget nu kan det godt være det skal vises sidst på listen...
Avatar billede pidgeot Nybegynder
09. februar 2006 - 00:54 #3
Jeg er ikke sikker på jeg er helt med... Præcist i hvilken rækkefølge skal det så sorteres? Hvad skal være først og sidst?
Avatar billede jammerlab Nybegynder
09. februar 2006 - 01:13 #4
I min database har jeg 3 felter... dato måned og år... for start periode og slut periode... den skal så sortere efter start perioderne... så selvom jeg opretter en idag som er den 9/2-2006 og indtaster 9/2-2001 så skal denne komme sidst i listen fordi det var engang i år 2001...
Avatar billede pidgeot Nybegynder
09. februar 2006 - 01:16 #5
Dvs. efter startperiode, med nyeste punkter øverst?

I så fald:

SELECT ... ORDER BY startperiode DESC;

eller, hvis hver del er i seperate felter som du lidt antyder:

SELECT ... ORDER BY startaar DESC, startmaaned DESC, startdag DESC;
Avatar billede jammerlab Nybegynder
09. februar 2006 - 13:44 #6
$query = mysql_query("SELECT * FROM kalender_aftale ORDER BY start_d DESC, start_d DESC, start_aar DESC");

Den oder by start_d men det er så også det... den tager ikke højre for månederne... en måned i januar (1) ligger i midten af alle andre som er i februar (2) fordi datoen ligger i midten
Avatar billede jammerlab Nybegynder
09. februar 2006 - 13:44 #7
$query = mysql_query("SELECT * FROM kalender_aftale ORDER BY start_d DESC, start_m DESC, start_aar DESC");

selvf.
Avatar billede pidgeot Nybegynder
09. februar 2006 - 14:00 #8
Du skal skrive dine ORDER BY kolonner i omvendt rækkefølge:

$query = mysql_query("SELECT * FROM kalender_aftale ORDER BY start_aar DESC, start_m DESC, start_d DESC");
Avatar billede jammerlab Nybegynder
09. februar 2006 - 14:13 #9
Ja det ser ud til at fungere :) Smid et svar

Tak.
Avatar billede pidgeot Nybegynder
09. februar 2006 - 17:34 #10
Et stk. svar er på vej :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester