Carian nilai yang sama berbilang baris MySQL: panduan lengkap
Dalam pangkalan data hubungan seperti MySQL, mengenal pasti baris dan lajur dengan nilai lajur yang sepadan selalunya merupakan tugas kritikal. Artikel ini meneroka cara untuk mengembalikan lajur yang berkongsi nilai yang sama dalam lajur tertentu.
Pertimbangkan jadual data berikut:
ID | Score |
---|---|
1 | 95 |
2 | 100 |
3 | 88 |
4 | 100 |
5 | 73 |
Untuk mendapatkan semula semua markah yang muncul dalam kedua-dua ID 2 dan ID 4, satu cara ialah menggunakan pengagregatan dan klausa HAVING:
<code class="language-sql">SELECT Score FROM t GROUP BY Score HAVING COUNT(CASE WHEN ID = 2 THEN 1 END) > 0 AND COUNT(CASE WHEN ID = 4 THEN 1 END) > 0;</code>
Pertanyaan ini mengira baris ID 2 dan ID 4 untuk setiap skor yang berbeza. Kemudian, kembalikan pecahan di mana kedua-dua ID 2 dan ID 4 mempunyai kiraan lebih besar daripada sifar sebagai hasil yang diingini.
Arahan:
GROUP BY Score
Mengagregatkan baris mengikut lajur Skor. HAVING COUNT(CASE WHEN ID = 2 THEN 1 END) > 0
Pastikan anda hanya memasukkan markah apabila ID 2 wujud. HAVING COUNT(CASE WHEN ID = 4 THEN 1 END) > 0
Tapis lagi keputusan untuk memasukkan skor yang ID 4 turut hadir. Dengan menggabungkan syarat ini dalam klausa HAVING, pertanyaan mengenal pasti markah yang muncul dalam kedua-dua ID 2 dan ID 4 dengan berkesan. Teknik ini boleh diperluaskan kepada sebarang bilangan ID atau lajur, menyediakan penyelesaian umum untuk mencari nilai yang sepadan dalam MySQL.
Atas ialah kandungan terperinci Bagaimana untuk mencari nilai yang sama merentas berbilang baris dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!