Avatar billede lubker Nybegynder
03. juni 2005 - 17:53 Der er 10 kommentarer og
1 løsning

mysql sorter efter ugedag mandag, tirsdag onsdag.

Jeg har en mysql database, med en kolonne til ugedag.
Nu vil jeg gerne sortere efter denne kolonne, men kan jo ikke bare bruge ORDER BY da fredag så vil komme noget før mandag :-(
Hvordan klarer jeg dette problem?
Avatar billede davidfossil Nybegynder
03. juni 2005 - 18:02 #1
Nu er jeg sikkert kun til besvær, men hvorfor har du en kolonne med ugedage-navne?
PHP har mange muligheder for at omskrive datoer - fx til ugedage:
http://dk.php.net/date
Avatar billede lubker Nybegynder
03. juni 2005 - 18:05 #2
Ved det, men der er ikke nogen dato tilknyttet.
Der er til en oversigt over hvilke hold der træner på forskellige tidspunkter i løbet af ugen. -> alle uger er ens... derfor ingen dato.
Avatar billede hmortensen Nybegynder
03. juni 2005 - 18:05 #3
Jeg ville nok ha valgt et sætte 1-7 istedet.

Hvis du har mysql 4.0 eller nyere, kan du bruge UNION:

(SELECT felt FROM tabel WHERE ugedag = 'mandag')
UNION
(SELECT felt FROM tabel WHERE ugedag = 'tirsdag')
UNION
(SELECT felt FROM tabel WHERE ugedag = 'onsdag')
Avatar billede lubker Nybegynder
03. juni 2005 - 18:07 #4
Ja, syntes bare UNION er en lidt længere process. Havde håbet på noget lidt nemmere.
Og det er selvfølgelig en mulighed med 1-7, men ville meget gerne beholde ugedagene.
Avatar billede davidfossil Nybegynder
03. juni 2005 - 18:13 #5
Jeg holder med hmortensen i hans forslag om at bruge 1-7 i stedet.
Anyways, her er en anden tosset løsning :o)

ORDER BY IF(ugedag='mandag',1,IF(ugedag='tirsdag',2,IF(ugedag='onsdag',3,IF(ugedag='torsdag',4,IF(ugedag='fredag',5,IF(ugedag='lørdag,6,7))))))
Avatar billede lubker Nybegynder
03. juni 2005 - 18:20 #6
Det jeg gerne vil undgå med 1-7 er konverteringen fra ugedag til nr og tilbage adskillige gange både i php og senere i et delphi-adminprogram.
prøver davidfossil's metode, virker umidelbart til at kunne klare den, på trods af det er en lidt anderledes løsning.
Avatar billede hmortensen Nybegynder
03. juni 2005 - 18:25 #7
1-7 eller 0-6 ville være "den rigtige løsning", da du ikke får redundant data.
Du kan enten lave konventering i PHP/Delphi, eller lave en ekstra tabel til relation.
Avatar billede lubker Nybegynder
03. juni 2005 - 18:26 #8
Tja. Kommer nok ikke uden om det.
Avatar billede hmortensen Nybegynder
03. juni 2005 - 18:34 #9
Hvis du laver en ekstra tabel sådan her:
id, dag
1, mandag
2, tirsdag

Så kan du lave dit udtræk sådan her:

SELECT tabel.felt1, tabel.felt2, ugedag.dag FROM tabel, ugedag WHERE tabel.ugedag = ugedag.id ORDER BY tabel.ugedag
Avatar billede lubker Nybegynder
03. juni 2005 - 19:29 #10
Løsningen blev 1-7, lidt mod min vilje, men skidt - Nok det der kommer til at virke bedst.
Hmortensen du kome med løsningen, så du må meget gerne lægge et svar.
Avatar billede hmortensen Nybegynder
03. juni 2005 - 19:35 #11
Det gør jeg så :)
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