Kürzlich habe ich herausgefunden, dass MySQL eine offset
Funktion hat. Ich habe versucht, eine Dokumentation über die Ergebnisse des Versatzes oder den Unterschied zwischen dem Versatz und der Grenzwertvariante zu finden, aber ich kann anscheinend nicht finden, wonach ich suche.
Nehmen wir an, ich habe 10.000 Zeilen in einer Tabelle und möchte 25 Ergebnisse aus Zeile 1.000. Soweit ich bisher gekommen bin, konnte ich beides tun, um das gleiche Ergebnis zu erzielen:
SELECT id,name,description FROM tablename LIMIT 1000,25
SELECT id,name,description FROM tablename LIMIT 25 OFFSET 1000
Was ich gerne wissen würde, ist der Unterschied zwischen den beiden.
- Tut das tatsächlich dasselbe oder ist mein Verständnis falsch?
- Ist man in größeren Tabellen langsamer / schneller
- Ändert sich das Ergebnis des Versatzes, wenn ich es tue
WHERE column=1
(sagen wir, die Spalte hat> 100 verschiedene Werte) - Ändert sich das Ergebnis des Versatzes, wenn ich es tue
ORDER BY column ASC
(vorausgesetzt, es hat zufällige Werte)?
Wenn dies eine "dumme" Frage ist und jemand eine Dokumentation kennt, die das Thema aufklärt, fügen Sie diese bitte in die Antworten ein.
Ich habe das Gefühl, dass der Versatz die ersten X Zeilen in der Datenbank überspringt, ohne Rücksicht auf die Sortierung und das Wo.