Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Mengira Jumlah Keputusan dengan Cekap dalam Pertanyaan MySQL dengan Offset dan Had?

Bagaimanakah Saya Boleh Mengira Jumlah Keputusan dengan Cekap dalam Pertanyaan MySQL dengan Offset dan Had?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-23 13:21:01749semak imbas

How Can I Efficiently Calculate Total Results in MySQL Queries with Offset and Limit?

Cara Menentukan Jumlah Hasil dengan Offset dan Had dalam Pertanyaan MySQL

Dalam senario penomboran menggunakan Codeigniter atau rangka kerja PHP/MySQL yang serupa, ia menjadi penting untuk menentukan jumlah bilangan hasil dalam jadual untuk mengira jumlah halaman. Walaupun kaedah standard menjalankan pertanyaan kedua tanpa fungsi had kelihatan tidak cekap secara pengiraan, terdapat penyelesaian alternatif yang mengoptimumkan proses ini.

Menggunakan SQL_CALC_FOUND_ROWS

MySQL menyediakan khas fungsi yang dikenali sebagai SQL_CALC_FOUND_ROWS. Dengan memasukkan pernyataan ini sebelum pertanyaan dengan klausa had dan offset, pangkalan data memastikan bahawa jumlah bilangan baris yang akan dikembalikan tanpa had disimpan dalam pembolehubah dalaman khas. Ini membolehkan untuk mendapatkan semula jumlah kiraan dengan cekap tanpa memerlukan pertanyaan tambahan.

Sebagai contoh, pertanyaan berikut termasuk SQL_CALC_FOUND_ROWS:

SELECT * FROM my_table WHERE category_id = ? ORDER BY id LIMIT 10 OFFSET 20

Untuk mendapatkan semula jumlah kiraan, hanya laksanakan pertanyaan berikut:

SELECT FOUND_ROWS()

Ini akan mengembalikan jumlah bilangan baris dalam jadual yang memenuhi klausa where, tanpa mengira parameter ofset atau had. Dengan membahagikan nilai ini dengan nilai had, anda boleh memperoleh jumlah bilangan halaman yang diperlukan untuk penomboran.

Dengan menggunakan SQL_CALC_FOUND_ROWS, penomboran menjadi lebih cekap dengan menghapuskan keperluan untuk berbilang panggilan pangkalan data dan memastikan pengiraan yang tepat untuk jumlah bilangan muka surat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Jumlah Keputusan dengan Cekap dalam Pertanyaan MySQL dengan Offset dan Had?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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