本文介绍了Mysql字符串拆分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!
问题描述
可能的重复:
Mysql 可以拆分列吗?
我有一个字符串列和一个逗号分隔的列,如下所示
I have one string column and one comma separated column as below
例如,我有桌子,
Col1 | col2
1 | a,b,c
2 | d,e
从上面,我想要
Col1,Col2
1 ,a
1 ,b
1 ,c
2 ,d
2 ,e
如何实现这一点
这不是完全重复.
推荐答案
您可以使用存储过程来做到这一点
You can do this using a stored procedure
DELIMITER $$
CREATE FUNCTION strSplit(x VARCHAR(65000), delim VARCHAR(12), pos INTEGER)
RETURNS VARCHAR(65000)
BEGIN
DECLARE output VARCHAR(65000);
SET output = REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos)
, LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1)
, delim
, '');
IF output = '' THEN SET output = null; END IF;
RETURN output;
END $$
CREATE PROCEDURE BadTableToGoodTable()
BEGIN
DECLARE i INTEGER;
SET i = 1;
REPEAT
INSERT INTO GoodTable (col1, col2)
SELECT col1, strSplit(col2, ',', i) FROM BadTable
WHERE strSplit(col2, ',', i) IS NOT NULL;
SET i = i + 1;
UNTIL ROW_COUNT() = 0
END REPEAT;
END $$
DELIMITER ;
这篇关于Mysql字符串拆分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!
本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!