猿问

MySQL字符串拆分

我有一个字符串列和一个逗号分隔列,如下所示


例如,我有桌子,


Col1 | col2

1    | a,b,c

2    | d,e

从上面,我想要


Col1,Col2

1   ,a

1   ,b

1   ,c

2   ,d

2   ,e

如何做到这一点


它不是完全重复的。


千万里不及你
浏览 417回答 1
1回答

慕尼黑的夜晚无繁华

您可以使用存储过程来执行此操作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 ;
随时随地看视频慕课网APP

相关分类

MySQL
我要回答