Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengagregatkan Rentetan ke dalam Senarai dalam MySQL (Serupa dengan LISTAGG Oracle)?

Bagaimana untuk Mengagregatkan Rentetan ke dalam Senarai dalam MySQL (Serupa dengan LISTAGG Oracle)?

Barbara Streisand
Lepaskan: 2024-12-04 14:15:16
asal
482 orang telah melayarinya

How to Aggregate Strings into a List in MySQL (Similar to Oracle's LISTAGG)?

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan