Avatar billede Mik2000 Professor
06. august 2020 - 20:50 Der er 2 kommentarer og
3 løsninger

Select med limit og total

Jeg vil lave noget pagination (load flere fungerer ikke her da man nemt skal kunne hoppe x sider frem)

I den forbindelse har jeg nogle komplekse SQL sætninger som har en LIMIT

Er man virkelig nødt til at køre den komplekse SQL sætning igen eller som subquery med en COUNT(*) og uden limit for at få totalen, så man ved hvor mange sider der er

Eller findes der en smartere løsning?

Faldt over noget SELECT FOUND_ROWS() men det virkede til at være gammelt og umiddelbart giver den nu kun antallet af rækker fundet i limit sætningen

Håber der er en der kan hjælpe :)
Avatar billede arne_v Ekspert
06. august 2020 - 21:18 #1
Jeg kan ikke lige komme i tanke om andre maader en foerst en SELECT COUNT og saa en SELECT LIMIT.

Du maa kunne spare et roundtrip ved at lave de to SELECT i en SP.

Det kunne sikkert betale sig at cache resultatet af SELECT COUNT.

Husk at selvom der en 1000 raekker naar du laver SELECT COUNT saa kan der principely vaere 0 eller 2000 naar SELECT LIMIT udfoeres, hvis databasen modficeres heftigt.
Avatar billede Mik2000 Professor
07. august 2020 - 16:35 #2
Men der er vel ikke rigtig andre måder at lave pagination på vel?
Avatar billede arne_v Ekspert
07. august 2020 - 18:50 #3
Jeg tror at der er mange som laver paginering med:
* visning af interval
* frem
* tilbage
uden at give mulighed for vilkårlige hop.

Men paginering er et problem.
Avatar billede Mik2000 Professor
07. august 2020 - 22:51 #4
Ja det var selvfølgelig en mulighed - men så skal man alligevel vide om der er flere når for at vide om man skal vise en frem pil tænker jeg
Avatar billede arne_v Ekspert
08. august 2020 - 05:10 #5
Du kan jo hente 1 mere end du vil vise. Er den der, saa viser du "frem".
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

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