Niedawno dowiedziałem się, że MySQL ma offset
funkcję. Próbowałem znaleźć dokumentację dotyczącą wyników przesunięcia lub różnicy między przesunięciem a wariantem ograniczenia, ale nie mogę znaleźć tego, czego szukam.
Powiedzmy, że mam 10.000 wierszy w tabeli i chcę 25 wyników z wiersza 1.000. Do tej pory mogłem zrobić oba, aby uzyskać ten sam wynik:
SELECT id,name,description FROM tablename LIMIT 1000,25
SELECT id,name,description FROM tablename LIMIT 25 OFFSET 1000
Chciałbym wiedzieć, jaka jest różnica między nimi.
- Czy to faktycznie robi to samo, czy też moje rozumienie jest błędne?
- Jest jeden wolniejszy / szybszy w większych tabelach
- Czy wynik przesunięcia zmienia się, gdy to robię
WHERE column=1
(powiedzmy, że kolumna ma> 100 różnych wartości) - Czy wynik przesunięcia zmienia się, gdy to robię
ORDER BY column ASC
(zakładając, że ma losowe wartości)
Jeśli jest to „głupie” pytanie i ktoś zna jakąkolwiek dokumentację wyjaśniającą ten temat, dodaj go w odpowiedziach.
Mam wrażenie, że przesunięcie pomija pierwsze X wierszy znalezionych w bazie danych, pomijając sortowanie i gdzie.