MySQL 将某行数据按照指定分隔符拆分成多行
时间: 2023-08-09 09:04:46 浏览: 67
你可以使用 MySQL 中的内置函数 `SUBSTRING_INDEX` 和 `UNION ALL` 实现将某行数据按照指定分隔符拆分成多行。具体操作如下:
1. 使用 `SUBSTRING_INDEX` 函数分隔字符串,将每个分隔符之间的内容提取出来:
```sql
SELECT SUBSTRING_INDEX('a,b,c,d', ',', 1) AS col1,
SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 2), ',', -1) AS col2,
SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 3), ',', -1) AS col3,
SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 4), ',', -1) AS col4
```
输出结果为:
```
+------+------+------+------+
| col1 | col2 | col3 | col4 |
+------+------+------+------+
| a | b | c | d |
+------+------+------+------+
```
2. 使用 `UNION ALL` 将每个分隔符之间的内容作为一行输出:
```sql
SELECT SUBSTRING_INDEX('a,b,c,d', ',', 1) AS col
UNION ALL
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 2), ',', -1)
UNION ALL
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 3), ',', -1)
UNION ALL
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 4), ',', -1)
```
输出结果为:
```
+-----+
| col |
+-----+
| a |
| b |
| c |
| d |
+-----+
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)