Rumah > pangkalan data > tutorial mysql > Bagaimanakah Fungsi strSplit MySQL Boleh Mengubah Rentetan Dipisahkan Koma kepada Berbilang Baris?

Bagaimanakah Fungsi strSplit MySQL Boleh Mengubah Rentetan Dipisahkan Koma kepada Berbilang Baris?

Barbara Streisand
Lepaskan: 2024-12-06 15:39:11
asal
632 orang telah melayarinya

How Can MySQL's strSplit Function Transform Comma-Separated Strings into Multiple Rows?

Memisahkan Rentetan dalam MySQL dengan Fungsi strSplit

Tidak seperti soalan dalam urutan pendua, soalan ini menanyakan secara khusus cara membahagikan yang dipisahkan koma lajur rentetan kepada berbilang baris. Untuk mencapai matlamat ini, MySQL menyediakan prosedur tersimpan serba boleh yang memanfaatkan fungsi strSplit().

Fungsi strSplit() memecahkan rentetan (x) yang diberikan berdasarkan pembatas (delim) dan kedudukan (pos) yang ditentukan . Ia melakukannya dengan mengekstrak subrentetan daripada pos kedudukan rentetan yang dibataskan, menggantikan pembatas dengan rentetan kosong dan mengembalikan subrentetan yang terhasil.

Untuk menggambarkan, mari kita pertimbangkan jadual input:

Col1 Col2
1 a,b,c
2 d,e

Untuk mengubah ini menjadi output yang diingini:

Col1 Col2
1 a
1 b
1 c
2 d
2 e

Kami mentakrifkan Prosedur tersimpan BadTableToGoodTable() seperti berikut:

CREATE PROCEDURE BadTableToGoodTable()
BEGIN
  DECLARE i INTEGER;

  SET i = 1;
  REPEAT
    INSERT INTO GoodTable (col1, col2)
      SELECT col1, strSplit(col2, ',', i) FROM BadTable
      WHERE strSplit(col2, ',', i) IS NOT NULL;
    SET i = i + 1;
    UNTIL ROW_COUNT() = 0
  END REPEAT;
END $$
Salin selepas log masuk

Di sini, kami melingkari setiap aksara dalam rentetan yang dipisahkan koma Col2 menggunakan pernyataan REPEAT, mengekstrak subrentetan menggunakan strSplit() dan memasukkannya ke dalam yang baharu table (GoodTable).

Dengan mengikuti langkah ini, kami boleh memisahkan rentetan dalam MySQL dengan berkesan, membolehkan kami untuk membentuk semula lajur yang dipisahkan koma kepada struktur data yang lebih ternormal.

Atas ialah kandungan terperinci Bagaimanakah Fungsi strSplit MySQL Boleh Mengubah Rentetan Dipisahkan Koma kepada Berbilang Baris?. 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