Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Nilai Berbeza dengan GROUP_CONCAT() MySQL?

Bagaimana untuk Mendapatkan Nilai Berbeza dengan GROUP_CONCAT() MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-12-08 22:29:11283semak imbas

How to Get Distinct Values with MySQL's GROUP_CONCAT()?

MySQL GROUP_CONCAT() Nilai Berbeza

Apabila bekerja dengan MySQL, adalah perkara biasa untuk mengagregatkan data menggunakan fungsi GROUP_CONCAT(). Walau bagaimanapun, bagaimana jika anda perlu memastikan hasil yang digabungkan adalah berbeza?

Mari kita pertimbangkan senario berikut:

SELECT GROUP_CONCAT(categories SEPARATOR ' ') FROM table;

Dengan data sampel:

categories
----------
test1 test2 test3
test4
test1 test3
test1 test3

Ini pertanyaan akan mengembalikan ujian1 ujian2 ujian3 ujian4 ujian1 ujian3. Walaupun ini termasuk semua kategori, ia tidak mengalih keluar pendua.

Untuk mendapatkan nilai yang berbeza menggunakan GROUP_CONCAT(), MySQL menyediakan atribut DISTINCT. Menambah DISTINCT pada pertanyaan memastikan bahawa hanya nilai yang berbeza digabungkan:

SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ') FROM table;

Dengan menggunakan DISTINCT, nilai pendua test1 test3 dialih keluar, menghasilkan output yang diingini: test1 test2 test3 test4.

Pengubahsuaian ini bukan sahaja menghapuskan pendua tetapi juga menyusun nilai yang digabungkan dalam tertib menaik, memberikan lebih keluaran yang teratur.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Berbeza dengan GROUP_CONCAT() 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