首页 > 数据库 > mysql教程 > 如何在 MySQL 中有效地将逗号分隔的列表拆分为多行?

如何在 MySQL 中有效地将逗号分隔的列表拆分为多行?

DDD
发布: 2025-01-06 11:59:48
原创
398 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板