问题:
在数据库表中,一列的逗号分隔值很少,想要查找字符串并通过mysql查询插入到新行中。
示例表结构:
| id value | | 1 abcd | | 2 xyz,123,abcd |
输出将为
| id value | | 1 abcd | | 2 xyz | | 3 123 | | 4 abcd |
注意:id是自动递增。 MySQL版本5.7 不知道该怎么做。
谢谢。
答案 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排除此错误,也可以将其与初始字符串包含的逗号数进行比较