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
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