Rumah > Artikel > pangkalan data > Bagaimana untuk Memilih ID MySQL dengan Berbilang Nilai Lajur Khusus Merentasi Baris?
Memilih ID MySQL Berlaku Merentasi Berbilang Baris dengan Nilai Lajur Tertentu
Mengenal pasti item yang memenuhi dua atau lebih nilai khusus dalam lajur tertentu boleh mencabar dalam MySQL. Pertimbangkan struktur jadual berikut:
+-----------------------+ | item_id | category_id | +-----------------------+ | 1 | 200 | | 1 | 201 | | 1 | 202 | | 2 | 201 | | 2 | 202 | | 3 | 202 | | 3 | 203 | | 4 | 201 | | 4 | 207 | +-----------------------+
Matlamatnya adalah untuk memilih hanya item yang tergolong dalam kedua-dua kategori yang ditetapkan, walaupun berpotensi dikaitkan dengan kategori tambahan.
Penyelesaian Tidak Berkesan:
Penyelesaian Berkesan:
Sertai Diri:
SELECT c1.item_id FROM item_category AS c1 INNER JOIN item_category AS c2 ON c1.item_id = c2.item_id WHERE c1.category_id = 201 AND c2.category_id = 202
Kaedah ini menggabungkan baris daripada jadual yang sama berdasarkan lajur biasa (item_id), membenarkan perbandingan antara berbilang baris dan nilainya.
KUMPULAN OLEH:
SELECT c.item_id, COUNT(*) AS cat_count FROM item_category AS c WHERE c.category_id IN (201,202) GROUP BY c.item_id HAVING cat_count = 2
Menggunakan fungsi GROUP BY, pendekatan ini mengira bilangan nilai kategori yang berbeza untuk setiap item_id. Item dengan cat_count bersamaan dengan bilangan kategori yang ditentukan (2 dalam kes ini) dipilih.
Kesimpulan:
Kedua-dua kaedah mengenal pasti item yang memenuhi kriteria yang dikehendaki dengan berkesan . Pilihan antara mereka bergantung pada keperluan khusus dan pertimbangan prestasi pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Memilih ID MySQL dengan Berbilang Nilai Lajur Khusus Merentasi Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!