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

DDD
Lepaskan: 2024-10-27 02:54:30
asal
860 orang telah melayarinya

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

Mendapatkan Jumlah Kiraan Baris dengan LIMIT Bersyarat

Apabila menggunakan pertanyaan SQL dengan klausa LIMIT untuk penomboran, menentukan jumlah bilangan baris menjadi satu cabaran. Pendekatan standard melibatkan pelaksanaan pertanyaan dua kali, sekali tanpa klausa LIMIT untuk mendapatkan kiraan baris dan sekali lagi dengan LIMIT untuk mendapatkan semula data bernombor. Proses ini boleh memakan masa untuk pertanyaan yang kompleks.

Walau bagaimanapun, terdapat penyelesaian yang lebih cekap yang diperkenalkan dalam MySQL 4.0.0:

Menggunakan SQL_CALC_FOUND_ROWS dan FOUND_ROWS()

Pilihan SQL_CALC_FOUND_ROWS boleh ditambah pada pertanyaan selepas pernyataan SELECT. Ini menandakan MySQL untuk mengira jumlah bilangan baris tanpa mengambil kira keadaan LIMIT. Untuk mendapatkan semula jumlah bilangan baris, pertanyaan kedua menggunakan fungsi FOUND_ROWS() diperlukan.

Penggunaan:

SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;
SELECT FOUND_ROWS();
Salin selepas log masuk

Nota: Adalah penting untuk melaksanakan pertanyaan kedua sejurus selepas pertanyaan pertama, kerana SQL_CALC_FOUND_ROWS tidak menyimpan kiraan baris secara kekal.

Penahentian SQL_CALC_FOUND_ROWS dan FOUND_ROWS()

As MySQL 8.0.17, pengubah suai pertanyaan SQL_CALC_FOUND_ROWS dan fungsi FOUND_ROWS() telah ditamatkan dan akan dialih keluar dalam versi MySQL akan datang. Sebaliknya, disyorkan untuk menggunakan COUNT:

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

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Jumlah Kiraan Baris dengan Cekap dengan LIMIT 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!