Klausa LIMIT yang manakah betul dari segi sintaksis dalam SQLite: OFFSET atau OFFSET dan ROW COUNT?
SQLite menyediakan dua sintaks untuk mengehadkan dan mengimbangi hasil pertanyaan:
<code>LIMIT <跳过>, <数量></code>
dan
<code>LIMIT <数量> OFFSET <跳过></code>
Perbezaan antara dua bentuk tatabahasa ini boleh mengelirukan kerana bilangannya dalam susunan terbalik.
Bentuk tatabahasa pertama <code>LIMIT <跳过>, <数量></code> bersamaan dengan:
<code>LIMIT <数量> OFFSET <跳过></code>
Ia serasi sintaks dengan MySQL dan PostgreSQL. MySQL menyokong kedua-dua bentuk sintaks, manakala PostgreSQL hanya menyokong sintaks kedua. SQLite menyokong kedua-dua bentuk sintaks, tetapi disyorkan untuk menggunakan sintaks kedua untuk mengelakkan kekeliruan.
Sebagai contoh, pertanyaan berikut akan melangkau 50 baris pertama dan mengembalikan 100 baris seterusnya:
<code>SELECT * FROM Animals LIMIT 100 OFFSET 50</code>
Adalah penting untuk ambil perhatian bahawa menggunakan ORDER BY
tanpa menggunakan LIMIT
terlebih dahulu tidak selalu memberikan hasil yang diharapkan. SQLite akan mengembalikan baris dalam beberapa susunan, yang mungkin ditentukan oleh tempat ia disimpan secara fizikal dalam fail. Walau bagaimanapun, pesanan ini tidak dijamin bermakna atau konsisten. Satu-satunya cara untuk mendapatkan pesanan yang boleh diramal ialah menggunakan ORDER BY
secara eksplisit.
Atas ialah kandungan terperinci Klausa HAD SQLite: OFFSET atau OFFSET dan ROW COUNT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!