Gå til innhold

Sortere en mySQL-spørring to ganger


Anbefalte innlegg

Er det mulig å sortere en mySQL-spørring to ganger? Som f.eks:

 

mysql_query("SELECT * FROM tabell ORDER BY dato,mail LIMIT 20");

 

Altså at den først henter ut 20 stk når tabellen er sortert etter dato, for så at disse 20 blir sortert etter mail :)

Lenke til kommentar
Videoannonse
Annonse

Hmmm... Er litt usikker på hva du mener her, men den spørringen vil ihvertfall sortere etter dato først, og hvis det er noen datoer som er like, vil den sortere etter mail...

 

12-12-2004 [email protected]
15-12-2004 [email protected]
15-12-2004 [email protected]
15-12-2004 [email protected]
18-12-2004 [email protected]

 

EDIT: AJAJ Var fryktelig sein med å trykke på svar knappen... Jaja

Endret av kakkle
Lenke til kommentar

EDIT: For meg virker det som om trådstarter vil sortere tabellen etter dato, og resultatet etter mail. Da blir det litt vanskeligere.

 

Foreslår at du først kjører:

 

SELECT * FROM tabell ORDER BY dato LIMIT 20

 

Og deretter sorterer resultatet i PHP, slik:

 

foreach (mysql_fetch_array($result) as $row) {
 foreach ($row as $key => $value) {
   $rows[$key] = $value;
 }
}

array_multisort($rows["mail"]);


 

Se: http://www.php.net/manual/en/function.array-multisort.php

 

Det går an å gjøre dette med bare SQL, men det er vanskeligere. I alle fall for meg å forklare her jeg sitter nå. :-)

 

Deretter kan du printe ut $rows slik:

 

echo '<table>'
foreach ($rows as $row) {
 echo '<tr>';
 foreach ($row as $key => $value) {
   echo '<td>' . $value . '</td>';
 }
 echo '</tr>';
}
echo '</table>';

 

Har ikke testet koden, så min feil om det ikke funker.

 

MVH Audun

Endret av audunr
Lenke til kommentar
Ah, misforstod litt hva du ville.

Da kan du gjøre det ca slik (ikke testet):

SELECT * FROM tabell GROUP BY mail ASC ORDER BY dato DESC LIMIT 20

Så det er altså det GROUP BY brukes til. :-) Hvis dette fungerer som forventet, så er det jo bare å glemme mitt forslag.

 

MVH Audun

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...