1. 程式人生 > 實用技巧 >mysql根據分隔符將一行資料拆分成多行資料

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