Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Membalikkan GROUP_CONCAT MySQL untuk Mengasingkan Data Bersatu?

Bagaimanakah Saya Boleh Membalikkan GROUP_CONCAT MySQL untuk Mengasingkan Data Bersatu?

Susan Sarandon
Lepaskan: 2024-12-15 08:33:18
asal
791 orang telah melayarinya

How Can I Reverse MySQL's GROUP_CONCAT to Separate Concatenated Data?

Membalikkan Kesan GROUP_CONCAT: Memisahkan Data Bercantum

Dalam MySQL, fungsi GROUP_CONCAT menggabungkan berbilang nilai daripada lajur tertentu menjadi satu, rentetan dipisahkan koma. Walau bagaimanapun, mungkin terdapat keadaan di mana anda menginginkan kesan sebaliknya, di mana rentetan bercantum dipecahkan semula kepada komponen individunya.

Pertanyaan untuk Mencapai Pemisahan

Untuk mencapai ini, gunakan pertanyaan 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

Memahami Butiran

  • Fungsi SUBSTRING_INDEX: Fungsi ini mengekstrak subrentetan ke-n daripada rentetan, bermula pada kejadian pertama pembatas yang ditentukan. Dalam pertanyaan ini, ia digunakan berbilang kali untuk mengasingkan setiap subrentetan warna.
  • Operator UNION: Operator UNION menggabungkan keputusan berbilang penyataan SELECT ke dalam satu jadual. Di sini, ia mengembalikan satu siri nombor yang mewakili kedudukan subrentetan warna.
  • digit 1: Ini menambah 1 pada nilai digit untuk melangkau pembatas koma pada permulaan setiap subrentetan warna .
  • Fungsi PANJANG: Fungsi ini mengira panjang rentetan. Di sini, ia digunakan untuk memastikan bahawa nilai digit berada dalam julat panjang rentetan warna.

Contoh Data dan Output

Untuk data sampel disediakan:

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

Output pertanyaan ialah:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membalikkan GROUP_CONCAT MySQL untuk Mengasingkan Data Bersatu?. 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