Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge
Dat kan ja. Dan moet je je query zo aanpassen dat ie alleen selecteert wat je daadwerkelijk weer wil geven:
Zo selecteer je eerst middels die subquery het achterste deel van je tabel, inclusief de 10 (in dit voorbeeld dan) die je echt wil weergeven, en daar selecteer je dan weer de eerste 10 van. Zo krijg je precies 10 records terug, die je kan sorten hoe je wil (wat hier dus al in de query gedaan is).
AantalRecordsInTabel is trouwens gewoon opgehaald met een query SELECT COUNT(*) FROM tabel. Paginanummer is de pagina die je zien wil.
Edit: bij de eerste 10 is het zelfs nog makkelijker:
ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
| query = "SELECT TOP 10 * " &_ "FROM tabel " &_ "WHERE id IN (" &_ "SELECT TOP " & AantalRecordsInTabel - ((PaginaNummer - 1) * 10) & " id " &_ "FROM tabel " &_ "ORDER BY sorteerveld DESC " &_ ") " &_ "ORDER BY sorteerveld ASC" |
Zo selecteer je eerst middels die subquery het achterste deel van je tabel, inclusief de 10 (in dit voorbeeld dan) die je echt wil weergeven, en daar selecteer je dan weer de eerste 10 van. Zo krijg je precies 10 records terug, die je kan sorten hoe je wil (wat hier dus al in de query gedaan is).
AantalRecordsInTabel is trouwens gewoon opgehaald met een query SELECT COUNT(*) FROM tabel. Paginanummer is de pagina die je zien wil.
Edit: bij de eerste 10 is het zelfs nog makkelijker:
ASP.NET Visual Basic:
1
| query = "SELECT TOP 10 * FROM tabel" |
[ Voor 31% gewijzigd door NMe op 17-05-2004 14:15 ]
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
NMe84 schreef op 17 mei 2004 @ 14:13:
Dat kan ja. Dan moet je je query zo aanpassen dat ie alleen selecteert wat je daadwerkelijk weer wil geven:
ASP.NET Visual Basic:
1 2 3 4 5 6 7 8 query = "SELECT TOP 10 * " &_ "FROM tabel " &_ "WHERE id IN (" &_ "SELECT TOP " & AantalRecordsInTabel - ((PaginaNummer - 1) * 10) & " id " &_ "FROM tabel " &_ "ORDER BY sorteerveld DESC " &_ ") " &_ "ORDER BY sorteerveld ASC"
Zo selecteer je eerst middels die subquery het achterste deel van je tabel, inclusief de 10 (in dit voorbeeld dan) die je echt wil weergeven, en daar selecteer je dan weer de eerste 10 van. Zo krijg je precies 10 records terug, die je kan sorten hoe je wil (wat hier dus al in de query gedaan is).
AantalRecordsInTabel is trouwens gewoon opgehaald met een query SELECT COUNT(*) FROM tabel. Paginanummer is de pagina die je zien wil.
Edit: bij de eerste 10 is het zelfs nog makkelijker:
ASP.NET Visual Basic:
1 query = "SELECT TOP 10 * FROM tabel"
Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge
Helemaal mee eens dat het ziek is en makkelijker zou moeten kunnen. Helaas is LIMIT echter geen standaard SQL en werkt het geloof ik alleen in MySQL. Misschien dat iets als LIMIT in de volgende implementatie van de SQL standaard wordt inbegrepen. Ik hoop het in ieder geval wel.Darkvater schreef op 17 mei 2004 @ 15:06:
[...]
. Wat een ziek stukje code
. Subquery, etc. bah. In MYSQL was het tenminste veel makkelijker (SELECT * FROM tabel LIMIT 10,20 ORDER BY sorteerveld DESC). In ieder geval bedankt, ik zal kijken wat ik ermee kan doen
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.