29. august 2004 - 23:10Der er
5 kommentarer og 1 løsning
Udvælgelse af 20 rækker, der har den største værdi i et felt.
Jeg ønsker her, at udvælge 20 rækker, som har den største værdi i et auto_increment felt. Rækker kan slettes, så jeg er ikke sikker på, at der er en række for hvert auto_increment index.
Jeg ønsker en sætning noget i stil med:
vælg 20 rækker, der har denne konstant som index, eller som er næststørst og ikke valgt i forvejen.
Jeg har ingen andelse om det her er svært (jeg er ny i sql ;), men hvis spørgsmålet burde tildeles flere point, giver jeg gerne.
eeeeej, vil det ikke give mig 20 rækker, hvor indexet er præcis konstanten? Det er jo et auto_indexment værdi, så der er ikke to rækker med samme nummer. Dertil kommer der også, at hvis der kan slettes i rækkerne, kan jeg ikke bare bede om:
select * from table where id > konstant, hvor konstanten er:
select max(id) from table - 20
Desuden ville det også være en fordel, hvis rækkerne blev serveret, med nedadgående id , altså at den række med det største id af de 20 kommer først osv.
Det ville være til at overskue, hvis mysql havde naturlige rækkenumre, såsom (tilgiv mit pseudo kode ;)
var = (select count(id) from table) - 20;
select * from table where count(id) >= var
jeg får grå hår af det her... mysql er sådan en bitch!
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.