Bagaimanakah Saya Boleh Mengira Nilai Berbeza dengan Cekap dalam Klausa WHERE MySQL?

Susan Sarandon
Lepaskan: 2024-11-05 09:31:02
asal
870 orang telah melayarinya

How Can I Efficiently Count Distinct Values in MySQL's WHERE Clause?

Menggunakan COUNT(*) dengan berkesan dalam Klausa WHERE MySQL

Menentukan sama ada nilai berbeza lajur mempunyai kiraan yang melebihi ambang tertentu adalah perkara biasa tugas dalam MySQL. Walaupun nampaknya mudah untuk menggunakan COUNT(*) dalam klausa WHERE untuk menapis hasil, pendekatan sedemikian boleh menjadi tidak cekap.

Untuk mengelakkan pendekatan intensif sumber ini, pertimbangkan untuk menggunakan sintaks alternatif berikut:

<code class="sql">SELECT DISTINCT gid
FROM `gd`
GROUP BY gid
HAVING COUNT(*) > 10
ORDER BY lastupdated DESC</code>
Salin selepas log masuk

Dengan menggunakan klausa GROUP BY, MySQL mengumpulkan baris mengikut nilai gid yang berbeza. Klausa HAVING kemudiannya menggunakan fungsi agregat COUNT(*) pada setiap kumpulan, menapis mereka yang mempunyai kiraan kurang daripada 10. Akhir sekali, klausa ORDER BY mengisih keputusan dalam tertib menurun berdasarkan lajur cap waktu yang dikemas kini terakhir.

Pendekatan ini lebih cekap kerana ia hanya melaksanakan pengagregatan sekali bagi setiap nilai berbeza, dan bukannya sekali untuk setiap baris. Pengoptimuman ini boleh meningkatkan prestasi dengan ketara untuk jadual dengan bilangan baris yang banyak.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Nilai Berbeza dengan Cekap dalam Klausa WHERE 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
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!