04. januar 2005 - 13:01Der 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?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
...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.
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
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....
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 ;)
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.