4
我有一个字符串列和一个逗号分隔的列如下
实施例, 我有表,
Col1 | col2
1 | a,b,c
2 | d,e
从上面,我想
Col1,Col2
1 ,a
1 ,b
1 ,c
2 ,d
2 ,e
如何实现这个
这是不准确的复制。
我有一个字符串列和一个逗号分隔的列如下
实施例, 我有表,
Col1 | col2
1 | a,b,c
2 | d,e
从上面,我想
Col1,Col2
1 ,a
1 ,b
1 ,c
2 ,d
2 ,e
如何实现这个
这是不准确的复制。
您此使用存储过程
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 ;
可以做你确定你想要的昏迷? ;) – hsz 2011-05-27 12:20:59
对不起,但我在这里闻到不好的数据库设计。您应该使用与第二个示例完全相同的表格(不含逗号)。 – kapa 2011-05-27 12:22:27
此列在堆栈溢出时被多次询问。请参阅http://stackoverflow.com/questions/1096679/can-mysql-split-a-column – garnertb 2011-05-27 12:24:05