Bagaimana untuk Mendapatkan Jumlah Kiraan Baris dengan Cekap dengan Penomboran dalam MySQL?

DDD
Lepaskan: 2024-10-27 06:42:02
asal
493 orang telah melayarinya

 How to Efficiently Retrieve Total Row Count with Pagination in MySQL?

Mendapatkan Jumlah Kiraan Baris dengan LIMIT

Apabila melaksanakan pertanyaan SQL dengan penomboran, selalunya perlu mendapatkan jumlah kiraan baris. Biasanya, ini memerlukan menjalankan pertanyaan dua kali, sekali tanpa klausa LIMIT untuk menentukan jumlah kiraan.

Walau bagaimanapun, terdapat cara yang lebih cekap untuk mencapai ini tanpa menggunakan berbilang pertanyaan.

SQL_CALC_FOUND_ROWS

Sejak MySQL 4.0.0, pilihan SQL_CALC_FOUND_ROWS boleh digunakan. Ia mengarahkan MySQL untuk mengira jumlah bilangan baris walaupun apabila klausa LIMIT hadir.

Untuk menggunakan pilihan ini, cuma tambahkannya selepas penyataan SELECT dalam pertanyaan utama. Kemudian, laksanakan pertanyaan berasingan untuk mendapatkan semula kiraan baris menggunakan fungsi FOUND_ROWS().

SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;

SELECT FOUND_ROWS();
Salin selepas log masuk

Nota: Walaupun SQL_CALC_FOUND_ROWS memerlukan dua pertanyaan, ia biasanya lebih pantas daripada melaksanakan pertanyaan utama dua kali . Walau bagaimanapun, pada MySQL 8.0.17, pilihan ini ditamatkan dan akan dialih keluar dalam versi akan datang.

Alternatif: COUNT()

Sebagai alternatif, anda boleh menggunakan fungsi COUNT() dalam pertanyaan berasingan untuk mendapatkan jumlah kiraan baris.

SELECT COUNT(*) FROM tbl_name WHERE id > 100;
Salin selepas log masuk

Kaedah ini juga memerlukan dua pertanyaan, tetapi pendekatan yang lebih terkini dan lebih disukai.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Jumlah Kiraan Baris dengan Cekap dengan Penomboran dalam MySQL?. 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
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!