Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memisahkan Nilai Dipisahkan Koma dalam MySQL ke dalam Baris Individu?

Bagaimana untuk Memisahkan Nilai Dipisahkan Koma dalam MySQL ke dalam Baris Individu?

Barbara Streisand
Lepaskan: 2025-01-14 11:25:43
asal
528 orang telah melayarinya

How to Split Comma-Separated Values in MySQL into Individual Rows?

Pisah baris dipisahkan koma dalam SQL

Soalan:

Bagaimana untuk memisahkan lajur yang mengandungi nilai dipisahkan koma ke dalam baris berasingan dalam SQL (MySQL)?

Jawapan:

MySQL tidak menyediakan fungsi terbina dalam untuk memisahkan nilai baris yang dipisahkan koma. Walau bagaimanapun, anda boleh menggunakan kaedah yang tidak konvensional untuk mencapai ini, yang melibatkan pengiraan nombor dan fungsi SUBSTRING_INDEX() MySQL:

<code class="language-sql">SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t.values, ',', n.n), ',', -1) value
FROM table1 t
CROSS JOIN (
  SELECT a.N + b.N * 10 + 1 n
  FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,
  (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
  ORDER BY n
) n
WHERE n.n <= LENGTH(t.values) - LENGTH(REPLACE(t.values, ',', '')) + 1;</code>
Salin selepas log masuk

Pertanyaan ini menggunakan fungsi SUBSTRING_INDEX() untuk mengekstrak nilai individu dengan menyatakan koma sebagai pembatas dan nilai n sebagai kedudukan belah. Nombor kiraan dijana menggunakan subkueri yang mencipta julat nombor dari 1 hingga 100, membolehkan anda membahagi sehingga 100 nilai yang dipisahkan setiap baris.

Untuk kaedah jadual kiraan berterusan, gunakan pertanyaan berikut:

<code class="language-sql">SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t.values, ',', n.n), ',', -1) value
FROM table1 t
CROSS JOIN tally n
WHERE n.n <= LENGTH(t.values) - LENGTH(REPLACE(t.values, ',', '')) + 1;</code>
Salin selepas log masuk

Kaedah ini mempunyai kebolehskalaan yang lebih baik jika anda perlu membahagikan sebilangan besar baris yang mengandungi nilai dipisahkan koma.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Nilai Dipisahkan Koma dalam MySQL ke dalam Baris Individu?. 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