如何从一列的逗号分隔值中查找子部分并在mysql中插入新行?

时间:2019-05-01 11:10:04

标签: mysql logic

问题:

在数据库表中,一列的逗号分隔值很少,想要查找字符串并通过mysql查询插入到新行中。

示例表结构:

| id    value        |
| 1     abcd         |
| 2     xyz,123,abcd |

输出将为

| id   value |
| 1     abcd |
| 2     xyz  |
| 3     123  |
| 4     abcd |

注意:id是自动递增。 MySQL版本5.7 不知道该怎么做。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以构建查询以返回数字。

SELECT 1 AS a UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 0

您可以多次将其与自己连接,以返回更大范围的数字。

然后,您可以将其结果与第一个表结合使用,并将数字与SUBSTRING_INDEX一起使用,查找逗号和前一个逗号。只需将该值插入第二张表即可。

做了几次。

需要注意的事情:-

您的电话号码范围足够。

最后一个值可能会重复。您可以使用DISTINCT排除此错误,也可以将其与初始字符串包含的逗号数进行比较