Cara Memilih Nilai Berbeza daripada Berbilang Lajur dalam MySQL
Apabila bekerja dengan pangkalan data, selalunya perlu untuk mendapatkan nilai unik atau berbeza daripada berbilang lajur. Walau bagaimanapun, menggunakan klausa SELECT DISTINCT yang mudah mungkin tidak selalu menghasilkan hasil yang diingini.
Masalahnya
Pertimbangkan senario berikut:
Table: foo_bar foo | bar --- | --- a | c c | f d | a c | a f | c a | c d | a a | c c | a f | c
Menjalankan pertanyaan SELECT DISTINCT foo, bar FROM foo_bar akan mengembalikan hasil berikut:
foo | bar --- | --- a | c c | f d | a c | a f | c
Perhatikan bahawa walaupun nilai untuk setiap lajur adalah berbeza, pasangan itu sendiri tidak. Sebagai contoh, pasangan a dan c muncul dua kali, hanya dalam susunan yang berbeza.
Penyelesaian: Menggunakan GROUP BY
Untuk mendapatkan pasangan nilai yang benar-benar berbeza, anda boleh menggunakan klausa GROUP BY:
SELECT foo, bar FROM foo_bar GROUP BY foo, bar
Klausa GROUP BY mengarahkan pangkalan data untuk mengumpulkan hasil berdasarkan lajur yang ditentukan. Dalam kes ini, ia akan mengumpulkan baris mengikut lajur foo dan bar.
Akibatnya, pertanyaan hanya akan mengembalikan pasangan nilai yang unik:
foo | bar --- | --- a | c c | f d | a
Pendekatan ini memastikan anda dapatkan hanya gabungan unik nilai daripada berbilang lajur yang ditentukan.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai yang Benar-benar Berbeza daripada Pelbagai Lajur dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!