mysql根据分隔符将一行数据拆分成多行数据

mysql根据逗号将一行数据拆分成多行数据

1、原始数据演示
在这里插入图片描述

2、处理结果演示

在这里插入图片描述

sql 语句

SELECT
    a.id,
    a. NAME,
    substring_index(
        substring_index(
            a.shareholder,
            ',',
            b.help_topic_id + 1
        ),
        ',' ,- 1
    ) AS shareholder
FROM
    company a
JOIN mysql.help_topic b ON b.help_topic_id < (
    length(a.shareholder) - length(
        REPLACE (a.shareholder, ',', '')
    ) + 1
)

建立基础表

CREATE TABLE `company` (
  `id` int(20) DEFAULT NULL,
  `name` varchar(100) DEFAULT NULL,
  `shareholder` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `company` VALUES ('1', '阿里巴巴', '马云');
INSERT INTO `company` VALUES ('2', '淘宝', '马云,孙正义');

 解释:

如果需要使用即 

1、切换对应的分隔符,这里用的是逗号

2、切换对应的对应的表,这里用的是 company

3、切换对应的对应的字段,这里用的是 shareholder

4、切换对应的关联字段 id

原文地址:https://www.cnblogs.com/ningy1009/p/13646278.html