Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Nilai yang Benar-benar Berbeza daripada Pelbagai Lajur dalam MySQL?

Bagaimana untuk Mendapatkan Nilai yang Benar-benar Berbeza daripada Pelbagai Lajur dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-10-29 11:05:02530semak imbas

How to Get Truly Distinct Values from Multiple Columns in MySQL?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn