首頁 >資料庫 >mysql教程 >如何在 MySQL 中有效地將逗號分隔的清單拆分為多行?

如何在 MySQL 中有效地將逗號分隔的清單拆分為多行?

DDD
DDD原創
2025-01-06 11:59:48412瀏覽

How Can I Efficiently Split Comma-Separated Lists into Multiple Rows in MySQL?

MySQL:將逗號分隔的清單拆分為多行

在處理儲存為逗號的外鍵時,非標準化表提出逗號了挑戰-分開的清單。 MySQL 沒有提供使用傳回表的函數來直接解決此問題的方法。但是,可以透過組合技術來實現解決方法。

使用連接操作:

要加入逗號分隔的列表,請使用 FIND_IN_SET() 函數來決定一個值是否存在於另一個值中。這允許您根據清單中的特定元素在表之間建立聯接。例如:

SELECT part_id,
       vechicle_id
FROM vehicles
JOIN load_plan_configs ON FIND_IN_SET(vechicle_id, load_plan_configs.vehicle_ids)
WHERE load_plan_configs.id = 42;

使用 INSERT 建立新表:

另一種方法是建立一個將儲存拆分值的新表。您可以使用一個查詢來迭代逗號分隔的值並將它們插入到新表中。例如:

INSERT INTO new_table (part_id, material_id)
SELECT part_id,
       SUBSTRING(material, INSTR(material, ',') + 1) AS material_id
FROM table_with_comma_separated_values;

此查詢將建立一個包含分割值的新表,其中每個part_id對於逗號分隔清單中的每個material_id都有一個單獨的項目。

透過利用這些技術,您可以在 MySQL 中有效地將逗號分隔的清單拆分為多行,從而使您能夠以更結構化和易於存取的方式處理資料。

以上是如何在 MySQL 中有效地將逗號分隔的清單拆分為多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn