Memilih Nilai Berbeza daripada Dua Lajur dalam MySQL: Mengatasi Entri Duplikat
Dalam pengurusan pangkalan data MySQL, membezakan nilai pendua merentas berbilang lajur boleh membentangkan cabaran. Pertimbangkan senario berikut:
Soalan:
Jadual pangkalan data bernama 'foo' mengandungi dua lajur, 'foo' dan 'bar', dengan data berikut:
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
a | c |
d | a |
a | c |
c | a |
f | c |
Apabila melaksanakan pertanyaan "SELECT DISTINCT foo, bar FROM foo", keputusan berikut diperoleh:
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
Walau bagaimanapun, keputusan ini termasuk gandingan berulang 'foo' dan ' nilai bar', seperti 'a' dan 'c', yang muncul dalam susunan yang berbeza. Matlamatnya adalah untuk memilih hanya nilai yang berbeza daripada kedua-dua lajur, menghapuskan pendua ini.
Jawapan:
Untuk menangani isu ini, MySQL menyediakan klausa 'GROUP BY', yang mengumpulkan baris berdasarkan lajur yang ditentukan dan memilih hanya satu baris yang berbeza untuk setiap kumpulan. Dengan menggunakan klausa ini, kita boleh mengubah suai pertanyaan seperti berikut:
SELECT foo, bar FROM foo GROUP BY foo, bar;
Pertanyaan yang diubah suai ini akan menghasilkan keputusan berikut:
foo | bar |
---|---|
a | c |
c | f |
d | a |
Dengan mengumpulkan baris mengikut 'foo' dan ' bar', pertanyaan memastikan bahawa setiap gabungan nilai yang berbeza diwakili sekali sahaja dalam keputusan, tanpa mengira susunan ia muncul.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Nilai Berbeza daripada Dua Lajur dalam MySQL dan Hapuskan Entri Duplikat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!