MySQL:将逗号分隔的列表分成多行

我有一个未标准化的表,其中的列包含逗号分隔的列表,该列表是另一个表的外键:


+----------+-------------+   +--------------+-------+

| part_id  | material    |   | material_id  | name  |

+----------+-------------+   +--------------+-------+

|      339 | 1.2mm;1.6mm |   |            1 | 1.2mm |

|      970 | 1.6mm       |   |            2 | 1.6mm |

+----------+-------------+   +--------------+-------+

我想将此数据读入不提供过程语言的搜索引擎中。


那么,有没有一种方法,要么就这一栏中加入或该数据运行查询插入相应的条目到一个新的表?结果数据应如下所示:


+---------+-------------+

| part_id | material_id |

+---------+-------------+

|     339 |           1 |

|     339 |           2 |

|     970 |           2 |

+---------+-------------+

如果DBMS支持返回表的函数,但MySQL显然不支持,我可以想到一个解决方案。


慕村9548890
浏览 1677回答 3
3回答

白衣染霜花

我已经在许多天内回答了两个类似的问题,但是没有任何回应,所以我想人们会因为使用光标而推迟,但是因为这应该是一个一次性的过程,所以我个人认为这并不重要。如前所述,MySQL不支持表返回类型,因此除了循环表和解析材料csv字符串并为零件和材料生成适当的行外,您别无选择。
打开App,查看更多内容
随时随地看视频慕课网APP