Fungsi Agregat dalam MySQL: Agregat Nilai ke dalam Senarai (Serupa dengan LISTAGG dalam Oracle)
Pertanyaan:
I need function, that returns list of strings. I have data in table like this: Id MyString ------------------------ 1 First 2 Second 3 Third 4 Fourth I need function like this (something like this works in oracle): select LISTAGG(MyString, ', ') as myList where id < 4 That returns something like this: myList ------------------------ First, Second, Third
Jawapan:
MySQL menyediakan fungsi GROUP_CONCAT() untuk tujuan ini. Ia mengagregatkan nilai ke dalam senarai dipisahkan koma.
Pertanyaan Menggunakan GROUP_CONCAT():
select group_concat(MyString separator ', ') as myList from table where id < 4
Pertanyaan ini akan mengembalikan senarai rentetan, dipisahkan dengan koma, untuk semua baris yang idnya kurang daripada 4. Lajur 'myList' akan mengandungi agregat hasil.
Nota: Fungsi GROUP_CONCAT() membenarkan pengumpulan mengikut berbilang lajur jika perlu. Contohnya:
select group_concat(MyString separator ', ') as myList from table where id < 4 group by another_column
Pertanyaan ini akan mengumpulkan hasil mengikut lajur_lain dan membuat senarai rentetan untuk setiap kumpulan.
Atas ialah kandungan terperinci Bagaimana untuk Mengagregatkan Rentetan ke dalam Senarai dalam MySQL (Serupa dengan LISTAGG Oracle)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!