Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mendapatkan Jumlah Kiraan Hasil dengan Cekap untuk Pertanyaan MySQL Bernombor Menggunakan OFFSET dan LIMIT?

Bagaimanakah Saya Boleh Mendapatkan Jumlah Kiraan Hasil dengan Cekap untuk Pertanyaan MySQL Bernombor Menggunakan OFFSET dan LIMIT?

Patricia Arquette
Lepaskan: 2024-12-01 00:36:12
asal
713 orang telah melayarinya

How Can I Efficiently Get the Total Count of Results for Paginated MySQL Queries Using OFFSET and LIMIT?

Menentukan Jumlah Keputusan untuk Pertanyaan MySQL Berpenomboran dengan Offset dan Had

Apabila melaksanakan penomboran dalam PHP/MySQL, menentukan jumlah bilangan hasil ialah penting untuk mengira jumlah halaman. Daripada menjalankan pertanyaan dua kali, pertimbangkan untuk menggunakan SQL_CALC_FOUND_ROWS.

Contoh:

SELECT SQL_CALC_FOUND_ROWS *
FROM directory_listings
WHERE category_id = ?
LIMIT ? OFFSET ?
Salin selepas log masuk

Pertanyaan ini mendapatkan semula bilangan keputusan yang dikehendaki sambil mengira jumlah bilangan kelayakan baris.

// Execute the query with pagination parameters
$results = $db->query($query, [
    'category_id' => $categoryId,
    'limit' => $limit,
    'offset' => $offset
]);

// Retrieve the found row count
$foundRows = $db->query("SELECT FOUND_ROWS() AS num_rows")->row();

// Calculate total pages
$totalPages = ceil($foundRows->num_rows / $limit);
Salin selepas log masuk

Faedah:

  • Cekap: Hanya satu pelaksanaan pertanyaan dan bukannya berbilang.
  • Tepat: Memberikan kiraan yang tepat bagi semua baris yang layak, tanpa mengira penomboran.

Nota:

SQL_CALC_FOUND_ROWS mesti digunakan bersama LIMIT untuk mengira kiraan baris dengan tepat dan mengelakkan salah kira.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Jumlah Kiraan Hasil dengan Cekap untuk Pertanyaan MySQL Bernombor Menggunakan OFFSET dan LIMIT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan