为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL字符串拆分

MySQL字符串拆分

千万里不及你 2019-12-06 09:57:59
我有一个字符串列和一个逗号分隔列,如下所示例如,我有桌子,Col1 | col21    | a,b,c2    | d,e从上面,我想要Col1,Col21   ,a1   ,b1   ,c2   ,d2   ,e如何做到这一点它不是完全重复的。
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

您可以使用存储过程来执行此操作


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 ;


查看完整回答
反对 回复 2019-12-06
  • 1 回答
  • 0 关注
  • 416 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信