Rumah >pangkalan data >tutorial mysql >Bagaimanakah Klausa LIMIT dan OFFSET SQLite Berbeza, dan Sintaks Yang Harus Saya Gunakan?
Memahami LIMIT dan OFFSET SQLite dalam Pertanyaan
SQLite, pangkalan data hubungan popular, menawarkan dua cara untuk menyekat bilangan baris yang dikembalikan oleh pertanyaan: LIMIT
dan OFFSET
. Walaupun fungsinya serupa, sintaksnya berbeza, yang berpotensi menyebabkan kekeliruan.
Variasi Sintaksis
Sintaks pertama, LIMIT <skip>, <count>
, menentukan bilangan baris untuk dikembalikan (count
) bermula pada offset yang diberikan (skip
) dari permulaan set hasil.
Yang kedua, LIMIT <count> OFFSET <skip>
, mencapai hasil yang sama tetapi membentangkan parameter dalam susunan yang berbeza. Ia mengembalikan count
baris, bermula pada baris skip
ke-.
Keserasian dan Amalan Terbaik
SQLite menyokong kedua-dua sintaks, warisan keserasiannya dengan sistem pangkalan data lain seperti MySQL dan PostgreSQL. MySQL menerima kedua-duanya, manakala PostgreSQL hanya menyokong borang LIMIT <count> OFFSET <skip>
.
Untuk mengelakkan kekaburan, SQLite mengesyorkan sintaks kedua (LIMIT <count> OFFSET <skip>
). Yang penting, sintaks ini mesti digunakan dengan ORDER BY
untuk menjamin pemilihan baris yang konsisten. Tanpa ORDER BY
, susunan baris yang dikembalikan tidak dapat diramalkan.
Contoh Ilustrasi
Mari kita periksa pertanyaan ini terhadap jadual "Haiwan":
<code class="language-sql">SELECT * FROM Animals LIMIT 100 OFFSET 50</code>
Ini mendapatkan semula 100 baris, bermula dari baris ke-51 (ingat, OFFSET
bermula pada 0).
<code class="language-sql">SELECT * FROM Animals LIMIT 100, 50</code>
Pertanyaan ini, walaupun sintaks berbeza, menghasilkan hasil yang sama: 100 baris bermula dari baris 51.
Pengambilan Utama
FasalSQLite LIMIT
dan OFFSET
, walaupun alat berkuasa untuk kawalan set hasil, boleh mengelirukan kerana sintaks dwi. Untuk kejelasan dan hasil yang boleh diramal, gunakan LIMIT <count> OFFSET <skip>
secara konsisten bersama dengan ORDER BY
.
Atas ialah kandungan terperinci Bagaimanakah Klausa LIMIT dan OFFSET SQLite Berbeza, dan Sintaks Yang Harus Saya Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!