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