如何解决规范化现有数据; varchar 列表到整数
标准化我十年前制作的现有表格。我有一个 varchar 列(平台),其中包含一个数字列表,我想将这些数字分解并放入单独的表格中。
[table_A]
id int
platforms varchar
other fields....
平台示例如下所示:
“1,3,4,7”
这些数字链接到另一个名为 Platforms 的表,它只不过是一个匹配的 ID 和一个 varchar 字段(描述)。我创建了一个新表来建立 table_A 和平台之间的关联。
[Table_B]
id int
table_A_id int
platform_id
因此,对于上述平台示例,我将 4 行插入到 Table_B 中。我的问题是,我可以通过 SQL 严格执行此操作吗?我唯一能想到的是编写一个 php 脚本来解析 varchar 并在 table_A 的每一行上进行单独的插入。有没有不借助外部脚本的更优雅的方式?
解决方法
INSERT INTO Table_B (table_A_id,platform_id)
SELECT a.id,p.id
FROM table_A AS a JOIN Platforms AS p ON FIND_IN_SET(p.ID,a.platforms);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。