sql >> Database >  >> RDS >> Mysql

Oneindig scrollen met MySQL-gegevens

Ik heb je code in een ander antwoord gezien en ik zou aanraden om de LIMIT-functionaliteit in MySql te gebruiken in plaats van de waarden te compenseren. Voorbeeld:

SELECT * FROM all_posts ORDER BY post_id DESC LIMIT '".(((int)$page)*5)."',5

Dit neemt gewoon een paginanummer in het AJAX-verzoek en krijgt de offset automatisch. Het is één consistente zoekopdracht en werkt onafhankelijk van de laatste resultaten op de pagina. Stuur iets als page=1 of page=2 in uw jQuery-code. Dit kan op verschillende manieren worden gedaan.

Tel eerst het aantal elementen dat op de pagina is geconstrueerd en deel dit door het aantal op de pagina. Dit levert een paginanummer op.

Ten tweede kunt u jQuery gebruiken en het huidige paginanummer aan de hoofdtekst binden:

$(body).data('page', 1)

Verhoog het met één elke pagina die wordt geladen.

Dit is echt de beste manier om te doen, omdat het één query gebruikt voor alle bewerkingen en er niet veel informatie nodig is over de gegevens die al op de pagina staan.

Het enige om op te merken is dat deze logica vereist dat het eerste paginaverzoek 0 is, niet 1. Dit komt omdat 1*5 zal evalueren tot 5, waarbij de eerste 5 rijen worden overgeslagen. Als het 0 is, wordt het geëvalueerd tot 0*5 en worden de eerste 0 rijen overgeslagen (aangezien 0*5 0 is).

Laat het me weten als je vragen hebt!



  1. Hoe gebruik ik een gebruikersvariabele in de MySQL LIKE-clausule?

  2. Afkapdatumveld in mysql zoals Oracle

  3. MySQL Galera-clusterreplicatie gebruiken om een ​​geo-gedistribueerde cluster te maken:deel twee

  4. Bulk DELETE op SQL Server 2008 (Is er zoiets als Bulk Copy (bcp) voor het verwijderen van gegevens?)