Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mendapatkan Jumlah Kiraan Baris dengan Cekap dengan Penomboran dalam MySQL?

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

DDD
DDDasal
2024-10-27 06:42:02494semak imbas

 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();

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;

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!

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