Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggabungkan Nama Pelakon untuk Setiap Filem dalam Pangkalan Data?

Bagaimana untuk Menggabungkan Nama Pelakon untuk Setiap Filem dalam Pangkalan Data?

Mary-Kate Olsen
Lepaskan: 2025-01-15 08:32:44
asal
622 orang telah melayarinya

How to Concatenate Actor Names for Each Movie in a Database?

Sambungkan berbilang baris hasil bagi satu lajur, dikumpulkan mengikut lajur lain

Dalam jadual pangkalan data dengan nama lajur seperti "filem" dan "pelakon", anda mungkin perlu menggabungkan berbilang baris pelakon kepunyaan filem yang sama ke dalam satu rentetan yang dipisahkan koma.

<code>表:

| 电影 | 演员 |
|---|---|
| A | 1 |
| A | 2 |
| A | 3 |
| B | 4 |</code>
Salin selepas log masuk

Keputusan yang dijangkakan:

<code>| 电影 | 演员列表 |
|---|---|
| A | 1, 2, 3 |
| B | 4 |</code>
Salin selepas log masuk

Penyelesaian menggunakan fungsi string_agg():

Untuk melakukan ini, anda boleh memanfaatkan fungsi agregat string_agg(). Berikut ialah pertanyaan:

<code>SELECT 电影, string_agg(演员, ', ') AS 演员列表
FROM 表
GROUP BY 电影;</code>
Salin selepas log masuk

Fungsi string_agg() menggabungkan nilai dalam lajur "Pelakon", memisahkannya dengan koma dan ruang. Klausa GROUP BY MOVIE memastikan bahawa keputusan dikumpulkan mengikut nama filem.

Nota lain:

  1. 1 dalam GROUP BY 1 ialah rujukan indeks kepada lajur pertama, dalam kes ini "Filem".
  2. string_agg() mengharapkan jenis data teks sebagai input. Jika lajur "pelakon" anda mempunyai jenis lain (contohnya, integer), anda mungkin perlu menukarnya secara eksplisit kepada teks, seperti string_agg(actor::text, ', ').
  3. Anda boleh menggunakan klausa ORDER BY dalam fungsi string_agg() untuk memesan nilai yang digabungkan (contohnya, ORDER BY aktor).

Kaedah ini menyediakan cara yang mudah dan cekap untuk menggabungkan berbilang baris lajur tertentu dan kumpulan dengan lajur lain.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Nama Pelakon untuk Setiap Filem dalam Pangkalan Data?. 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