Rumah >pangkalan data >tutorial mysql >Hubungan antara di mana dan mempunyai dalam mysql
Klausa WHERE menapis data peringkat baris, manakala klausa HAVING menapis data peringkat kumpulan. Klausa WHERE digunakan selepas kata kunci FROM, manakala klausa HAVING digunakan selepas kata kunci GROUP BY.
Hubungan antara klausa WHERE dan HAVING dalam MySQL
WHERE dan HAVING ialah dua klausa yang digunakan untuk menapis set data MySQL. Perbezaannya ialah klausa WHERE digunakan untuk menapis baris, manakala klausa HAVING digunakan untuk menapis kumpulan.
WHERE klausa
WHERE klausa ditulis selepas FROM kata kunci dan digunakan untuk menapis baris berdasarkan syarat yang diberikan. Ia hanya mempertimbangkan nilai setiap baris, bukan baris lain dalam kumpulan. Klausa WHERE boleh digunakan untuk menapis baris yang tidak memenuhi syarat.
Klausa HAVING
Klausa HAVING ditulis selepas kata kunci GROUP BY dan digunakan untuk menapis kumpulan berdasarkan data dalam kumpulan. Ia mengambil kira nilai agregat dalam kumpulan dan menapis kumpulan berdasarkan nilai ini. Klausa HAVING boleh digunakan untuk menapis kumpulan yang tidak memenuhi kriteria.
Relationships
WHERE dan HAVING klausa digunakan terutamanya untuk menyelesaikan masalah yang berbeza:
Contoh
Contoh berikut menunjukkan perbezaan antara klausa WHERE dan HAVING:
<code class="sql">SELECT * FROM sales WHERE product_id = 1; -- WHERE 过滤行</code>
Pertanyaan ini akan mengembalikan semua rekod jualan dengan ID produk 1.
<code class="sql">SELECT product_id, SUM(quantity) AS total_quantity FROM sales GROUP BY product_id HAVING total_quantity > 100; -- HAVING 过滤组</code>
Pertanyaan ini akan mengembalikan semua kumpulan produk yang ID produk dan jumlah jualan mereka melebihi 100.
Adalah penting untuk memahami perbezaan antara klausa WHERE dan HAVING untuk menapis data dalam pertanyaan MySQL dengan berkesan.
Atas ialah kandungan terperinci Hubungan antara di mana dan mempunyai dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!