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

Mary-Kate Olsen
Lepaskan: 2024-10-23 13:21:01
asal
748 orang telah melayarinya

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
Salin selepas log masuk

Untuk mendapatkan semula jumlah kiraan, hanya laksanakan pertanyaan berikut:

SELECT FOUND_ROWS()
Salin selepas log masuk

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!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!