Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan Senarai Dipisahkan Koma dalam MySQL untuk Normalisasi Data?

Bagaimana untuk Memisahkan Senarai Dipisahkan Koma dalam MySQL untuk Normalisasi Data?

Linda Hamilton
Linda Hamiltonasal
2025-01-06 11:41:411019semak imbas

How to Split Comma-Separated Lists in MySQL for Data Normalization?

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:

  • Ungkapan biasa untuk mengekstrak nilai daripada senarai.
  • SERTAI operasi untuk mengaitkan senarai yang dipisahkan koma kepada kunci asing jadual.

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!

Kenyataan:
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