Baris mana yang dikembalikan saat menggunakan LIMIT dengan OFFSET di MySQL?

140

Dalam kueri di bawah ini:

SELECT column 
FROM table
LIMIT 18 OFFSET 8

berapa banyak hasil yang akan kita dapatkan sebagai output dan dari mana ke mana?

Arun Killu
sumber
Pesanan harus LIMIT terlebih dahulu, kemudian OFFSET. Jika tidak maka akan terjadi kesalahan.
Mouser

Jawaban:

189

Ini akan mengembalikan 18 hasil mulai dari rekor # 9 dan berakhir pada rekor # 26.

Mulailah dengan membaca kueri dari offset. Pertama, Anda mengimbangi dengan 8, yang berarti Anda melewatkan 8 hasil pertama dari kueri. Maka Anda membatasi dengan 18. Yang berarti Anda mempertimbangkan catatan 9, 10, 11, 12, 13, 14, 15, 16 .... 24, 25, 26 yang merupakan total 18 catatan.

Lihat ini .

Dan juga dokumentasi resmi .

Mosty Mostacho
sumber
Anda benar, apakah ada perbedaan batas b / w 8,18 dan batas 18 offset 8
Arun Killu
26
Tidak, sama saja. LIMIT 8, 18hanyalah jalan pintas :)
Mosty Mostacho
1
Jawaban terbaik karena saya juga bingung saya berpikir bahwa ia mengembalikan data antara dua digit tapi sekarang jelas :)
MR_AMDEV
47

OFFSET tidak lain adalah kata kunci untuk menunjukkan mulai kursor dalam tabel

SELECT column FROM table LIMIT 18 OFFSET 8 -- fetch 18 records, begin with record 9 (OFFSET 8)

Anda akan mendapatkan formulir hasil yang sama

SELECT column FROM table LIMIT 8, 18

representasi visual ( Radalah satu catatan dalam tabel dalam urutan tertentu)

 OFFSET        LIMIT          rest of the table
 __||__   _______||_______   __||__
/      \ /                \ /
RRRRRRRR RRRRRRRRRRRRRRRRRR RRRR...
         \________________/
                 ||
             your result
anggur
sumber
3

Anda akan mendapatkan output dari columnnilai 9 hingga 26 seperti yang Anda sebutkan OFFSET8

Mahesh Patil
sumber