Avatar billede snorres Nybegynder
04. januar 2005 - 13:01 Der er 11 kommentarer og
1 løsning

Sortere efter 2 ting.

når man henter noget fra en sql database med php, hvordan gør man så, så den sortere efter 2 ting?
Altså først en ting, og så en anden ting hvis der er 2 med lige meget i det første?
Avatar billede fennec Nybegynder
04. januar 2005 - 13:03 #1
"select * from enTabel order by dato, titel"
Avatar billede snorres Nybegynder
04. januar 2005 - 13:07 #2
omfg, that was easy :D
Avatar billede fennec Nybegynder
04. januar 2005 - 13:07 #3
...Du kan også bestemme sorteringens rækkefølgen (ASC og DESC) på hver element, så den sortere felterne i både stigende og faldende orden. Det er f.eks. aktuelt ved dato og titel sortering (som i dette tilfælde):

"select * from enTabel order by dato DESC, titel ASC"

Så får du de nyeste først, og på hver dato er titlerne så sorteret stigende.
Avatar billede snorres Nybegynder
04. januar 2005 - 13:16 #4
tusind tak, det var smart :)
Avatar billede coderdk Praktikant
04. januar 2005 - 14:03 #5
FYI: MySQL er snotdum til at bruge indexes, hvis du laver en ORDER BY på "felt", og HAR et index på "felt", så prøv at lave en EXPLAIN på din query og se om den bruger det; hvis den ikke gør, så kan du tvinge den til at bruge det: SELECT felt, felt2 FROM tabel FORCE INDEX (indexnavn) ORDER BY felt
Avatar billede snorres Nybegynder
04. januar 2005 - 14:07 #6
er ik helt med coderdk?
sorry, prøv at forklare+ :D
Avatar billede fennec Nybegynder
04. januar 2005 - 14:11 #7
Det handler om hastighed. Ved at lave et "index" på felter, kan databasen søge/sortere hurtigere, men som coderdk skriver, bruger MySQL det ikke på "order by". Du skal dog op og have mange resultater før du kan mærke det....
Avatar billede coderdk Praktikant
04. januar 2005 - 14:11 #8
Når du laver en ORDER BY skal databasemoteren jo sortere, sådan noget er typisk langsomt - For at gøre det hurtigere opretter man et index på feltet ;)
Avatar billede coderdk Praktikant
04. januar 2005 - 14:14 #9
Det kan betale sig at læse lidt og sætte sig bedre ind i SQL :)
Avatar billede snorres Nybegynder
04. januar 2005 - 14:23 #10
hvis jeg kun tager de 100 højeste ud af 5000 er det så det vaerd?
Avatar billede coderdk Praktikant
04. januar 2005 - 14:57 #11
Det er altid noget værd at lave en ordentlig database ;) Men nej, med mindre du har en MEGET travl server, opdager du nok ikke noget ;)
Avatar billede snorres Nybegynder
05. januar 2005 - 08:58 #12
Hmm
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