Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Membalikkan GROUP_CONCAT untuk Mengeluarkan Nilai Individu daripada Rentetan Agregat dalam MySQL?

Bagaimanakah Saya Boleh Membalikkan GROUP_CONCAT untuk Mengeluarkan Nilai Individu daripada Rentetan Agregat dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-12-17 07:24:25
asal
850 orang telah melayarinya

How Can I Reverse GROUP_CONCAT to Extract Individual Values from Aggregated Strings in MySQL?

Merungkai GROUP_CONCAT: Mengekstrak Nilai Individu daripada Data Agregat

Dalam bidang pengurusan pangkalan data, fungsi GROUP_CONCAT ialah alat yang berkuasa untuk mengagregatkan berbilang nilai ke dalam rentetan tunggal yang dipisahkan koma. Walau bagaimanapun, mungkin terdapat keadaan apabila anda menghadapi cabaran yang bertentangan: merungkai rentetan agregat ini ke dalam komponen individunya.

Intipati Masalah

Pertimbangkan data berikut dalam jadual bernama "warna":

| id | colors               |
|----+----------------------|
| 1  | Red,Green,Blue       |
| 2  | Orangered,Periwinkle |
Salin selepas log masuk

Matlamat anda adalah untuk mengubah data ini menjadi struktur yang setiap warna diwakili sebagai baris yang berasingan:

| id | colors     |
|----+------------|
| 1  | Red        |
| 1  | Green      |
| 1  | Blue       |
| 2  | Orangered  |
| 2  | Periwinkle |
Salin selepas log masuk

Penyelesaian: Membongkar Rentetan

MySQL menyediakan beberapa teknik untuk menyelesaikan tugasan ini. Satu pendekatan menggunakan fungsi SUBSTRING_INDEX dan SUBSTRING seperti berikut:

SELECT
  id,
  SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', n.digit+1), ',', -1) color
FROM
  colors
  INNER JOIN
  (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n
  ON LENGTH(REPLACE(colors, ',' , '')) <= LENGTH(colors)-n.digit
ORDER BY
  id,
  n.digit
Salin selepas log masuk

Pertanyaan ini beroperasi dengan:

  1. Menggunakan SUBSTRING_INDEX untuk mencari kedudukan permulaan dan akhir setiap warna dalam koma- rentetan dipisahkan.
  2. Menyertai dengan jadual yang menjana nombor yang sepadan dengan kedudukan warna.
  3. Menapis baris yang bilangan warna melebihi julat jadual yang dicantumkan.
  4. Mengisih keputusan mengikut id dan kedudukan warna.

Menyingkap Misteri: Pengagregatan Songsang atau Un-GROUP_CONCAT

Operasi yang diterangkan di atas sering dirujuk sebagai "pengagregatan terbalik" atau "un-GROUP_CONCAT." Ia membolehkan anda mengekstrak dan menyahhimpun nilai individu daripada data yang sebelum ini telah diagregatkan atau digabungkan. Teknik ini amat berguna apabila anda perlu melakukan analisis atau transformasi lanjut pada titik data individu dan bukannya agregat itu sendiri.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membalikkan GROUP_CONCAT untuk Mengeluarkan Nilai Individu daripada Rentetan Agregat dalam MySQL?. 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