Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan Senarai Dipisahkan Koma dalam MySQL untuk Normalisasi Data?
Memisahkan Senarai Dipisahkan Koma dalam MySQL
Bekerja dengan jadual tidak normal yang mengandungi nilai kunci asing yang dipisahkan koma boleh mencabar apabila memindahkan data ke sistem yang tidak mempunyai bahasa prosedur. Untuk menangani isu ini, MySQL menyediakan kaedah untuk menukar senarai ini kepada baris ternormal.
Menggunakan Fungsi FIND_IN_SET()
Untuk membahagikan senarai yang dipisahkan koma kepada berbilang baris, MySQL menawarkan fungsi FIND_IN_SET(). Fungsi ini mengembalikan kedudukan nilai tertentu dalam senarai. Menggunakan fungsi ini, anda boleh mengulangi setiap nilai dalam senarai dan memasukkan baris baharu ke dalam jadual sementara.
Pertanyaan berikut menunjukkan cara membahagikan lajur "bahan" daripada jadual yang diberikan kepada baris yang dinormalkan:
CREATE TEMPORARY TABLE split_materials ( part_id INT, material_id INT ); INSERT INTO split_materials (part_id, material_id) SELECT part_id, CAST(SUBSTRING_INDEX(material, ';', 1) AS UNSIGNED) FROM my_table; INSERT INTO split_materials (part_id, material_id) SELECT part_id, CAST(SUBSTRING_INDEX(material, ';', -1) AS UNSIGNED) FROM my_table WHERE material LIKE '%,%';
Penyelesaian Alternatif
Jika fungsi FIND_IN_SET() ialah tidak sesuai, anda juga boleh meneroka menggunakan:
Kesimpulan
Memisahkan senarai yang dipisahkan koma kepada berbilang baris dalam MySQL boleh dicapai menggunakan fungsi FIND_IN_SET(), ungkapan biasa atau JOIN. Ini membolehkan anda menormalkan data tidak normal dan menyediakannya untuk pengingesan ke dalam sistem yang tidak menyokong bahasa prosedur.
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Senarai Dipisahkan Koma dalam MySQL untuk Normalisasi Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!