Ich habe eine Abfrage, die 10 Elemente einer großen Liste zurückgibt. Zum Beispiel:Mysql Grenze, wenn die ganze Liste ändern kann
SELECT * FROM users
WHERE user_is_block = 0
AND user_is_paid = 1
ORDER BY user_post_hour ASC, id ASC"
Als ich limit ?, ?
einen Teil dieser Liste jedes Mal zu erhalten setzte, geschieht ein Problem. Stellen Sie sich vor, wir bekommen die ersten 10. Die Zeile mit der ID 11 ist die erste in der nächsten Anfrage. Aber wie wir ORDER BY user_post_hour
verwenden, kann die ID 11 steigen und 10 werden. Wenn also eine zweite Anfrage gesendet wird, sehen wir niemals ID 11.
Irgendeine Idee?
Betrachten Sie die gesamte Datenmenge auf Ihre Anwendungsebene, wie JSON oder (wenn Sie ein bisschen altmodisch sind) Xml, sagen. Dann paginieren Sie einfach diese Ergebnismenge. – Strawberry
Was ist der Datentyp für "user_post_hour"? – Santosh
@Strawberry Das ist natürlich JSON. Aber das Problem ist, dass die Liste (Tabelle) groß ist und für jede Zeile sollte ich eine andere Abfrage ausführen, und es kann eine Menge Zeit brauchen. –