Avatar billede jbob Nybegynder
29. oktober 2006 - 23:04 Der er 8 kommentarer og
1 løsning

Sorter de sidste 10

Jeg vil gerne udvælge de sidste 10 poster i mit table og så sortere dem efter titel (det er fotos).

Hvis jeg laver nedenstående får jeg de 10 sidste poster i rækkefælge, men hvordan sorterer jeg dem efter titel??

$qr = hent ("select * from photo ORDER BY id DESC LIMIT 10");
Avatar billede hmortensen Nybegynder
29. oktober 2006 - 23:13 #1
Afhængig af din version, kan du gøre sådan her:
SELECT * FROM (SELECT * FROM photo ORDER BY id DESC LIMIT 10) as x ORDER BY x.titel
Avatar billede jbob Nybegynder
29. oktober 2006 - 23:30 #2
Tak, det ser meget lovende ud - men hvad står x'et for i "as x". Det virker faktisk bare jeg skriver "as x".
Avatar billede hmortensen Nybegynder
30. oktober 2006 - 06:46 #3
Det laver et alias af sub selecten, så man kan bruge den i ORDER BY clausen.
Avatar billede jbob Nybegynder
31. oktober 2006 - 17:29 #4
Ok, super! Jeg takker - læg et svar.
Avatar billede jbob Nybegynder
31. oktober 2006 - 19:41 #5
ÆV - det virker på min locale host, men nu opdager jeg at min webhoster nok har en anden version af MySQL - ææh var der en anden metode?
Avatar billede hmortensen Nybegynder
31. oktober 2006 - 20:10 #6
Ved ikke lige om det kan laves smartere uden sub selects, men burde virke sådan her:

$q1 = mysql_query("SELECT id FROM photo ORDER BY id DESC LIMIT 10");
$ids = array();
while ($r = mysql_fetch_assoc($q1))
  $ids[] = $r['id'];

$q2 = mysql_query("SELECT * FROM photo WHERE id IN(" . implode(",", $ids) . ") ORDER BY titel");

Så burde du ha det ønskede resultat i $q2.
Avatar billede delphin Nybegynder
04. november 2006 - 12:17 #7
hmm - kan du ikke bare skrive:

$qr = hent ("select * from photo ORDER BY id DESC, titel ASC LIMIT 10");

Eller er det mig der er helt forkert på den?
Avatar billede jbob Nybegynder
20. november 2006 - 23:11 #8
Beklager den lange respons tid, men jeg fik travlt med noget andet.

Delphin - det er ikke det jeg er ude efter. Id har en auto_increment der tæller løs. Jeg vil vælge de sidste 10 (efter højeres id) og derefter sortere dem efter titel, men de skal ikke sorteres efter id.
Avatar billede jbob Nybegynder
21. november 2006 - 00:20 #9
Hmortensen - jeg havde lavet nogle fejl der gjorde at jeg ikke kunne få din løsning til at virke, men nu har jeg fået den til at funke, tak for hjælpen!
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
Computerworld tilbyder specialiserede kurser i database-management

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