Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Membahagikan Rentetan Dipisahkan Koma ke dalam Jadual Sementara MySQL?

Bagaimanakah Saya Boleh Membahagikan Rentetan Dipisahkan Koma ke dalam Jadual Sementara MySQL?

Linda Hamilton
Lepaskan: 2024-12-07 09:34:11
asal
436 orang telah melayarinya

How Can I Split Comma-Separated Strings into a MySQL Temporary Table?

Memisahkan Rentetan Dipisahkan Koma ke dalam Jadual Temp dalam MySQL

Menggunakan MySQL, tidak mungkin untuk memisahkan rentetan yang dipisahkan koma secara langsung ke dalam jadual temp menggunakan ungkapan biasa. Ini kerana MySQL tidak mempunyai fungsi rentetan pisah terbina dalam.

Penyelesaian Penyelesaian

Memandangkan pemisahan terus tidak dapat dilaksanakan, anda boleh menggunakan pelbagai kaedah penyelesaian:

1. Pemisahan menggunakan Fungsi Tersuai

Anda boleh mencipta fungsi tersuai dalam MySQL untuk memisahkan rentetan kepada nilai individu. Contohnya:

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');
Salin selepas log masuk

2. Menggunakan Gelung

Panggil fungsi tersuai dalam gelung dan naikkan kedudukan sehingga nilai kosong dikembalikan:

DELIMITER $$

CREATE PROCEDURE ABC(fullstr)

BEGIN
   DECLARE a INT Default 0 ;
   DECLARE str VARCHAR(255);
   simple_loop: LOOP
      SET a=a+1;
      SET str=SPLIT_STR(fullstr, "|", a);
      IF str='' THEN
         LEAVE simple_loop;
      END IF;
      # Insert into temp table here with str going into the row
      insert into my_temp_table values (str);
   END LOOP simple_loop;
END $$
Salin selepas log masuk

3. Penyepaduan Bahasa Skrip

Sebagai alternatif, anda boleh menggunakan bahasa skrip seperti PHP untuk memisahkan rentetan dan melaksanakan operasi yang diperlukan.

Kesimpulan

Walaupun MySQL tidak mempunyai fungsi rentetan split khusus, kaedah penyelesaian ini membolehkan anda menghuraikan rentetan yang dipisahkan koma dengan berkesan ke dalam jadual temp. Pilih pendekatan yang paling sesuai dengan keperluan dan pilihan anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Rentetan Dipisahkan Koma ke dalam Jadual Sementara MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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