15. februar 2002 - 11:48Der er
10 kommentarer og 1 løsning
vise 10 af 100 rækker af gange
Hej,
Et teoretisk spørgsmål: Hvis jeg har en select, der returnerer 100 rækker med ORDER BY, kan jeg så definere at den skal behandle (og vise) 10 rækker af gangen ?
For at simplificere spørgsmålet lidt, kan man sige, at det skal fungere på samme måde som diverse internet-search engines. Når man søger, vises de første svar rimelig hurtigt, og først når man hopper videre finder den de næste.
(P.S jeg følger først op på denne tråd, tidligst Tisdag i uge 8)
=> scandal Almindeligvis benytter man sig af en algoritme opdeler jhele sæøgesættet i vinduer, eks. af 10 styk. Når søgesættet indeholder 100 rækker har du altså 10 vinduer, og side 5 vil bestå af række 51-60 og så fremdeles.
Ved at sætte
WHERE rownum between (side*10)+1 and ((side+1)*10)
har du dit vindue. Oracle har cachet søgningen ved klik på side 2, 3.. osv. og vil være en anelse hurtigere, men jo længere du kommer ned i søgesættet jo flere rækker skal sorteres før der kan returneres.
Alternativt skal du gemme søgesættet i en midlertidig tabel og have opdelt siderne på forhånd. Herefter vil fremsøgning af de efterfølgende sider være lynhurtigt. Det er der rigtigt mange søgemaskiner der gør (og ikke gør)
Jones_net > Det er en ORACLE database, ikke MySql... Men ellers tak.
teepee > Tak for svaret. Jeg lader lige spørgsmålet stå for at se, om der kommer andre guldkorn. Angående den med ROWNUM<=100, den kan man ikke bruge direkte, når man også har en GROUP BY. Så skal man pakke det ind ført, men den har jeg styr på.
har glemt hvad jeg skulle bruge det til :-( Men tak for svarene.
Synes godt om
Ny brugerNybegynder
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.