MYSQL: sql中某一个字段内容为用逗号分割的字符串转换成多条数据
时间: 2024-02-26 21:57:55 浏览: 151
mysql将字符串分割成多列值
3星 · 编辑精心推荐
可以使用MySQL中内置的函数`SUBSTRING_INDEX`和`UNION ALL`实现将一个字段内容为用逗号分割的字符串转换成多条数据。
假设我们有一张名为`table1`的表,其中有一列名为`col1`,其内容为用逗号分割的字符串,我们需要将其转换成多条数据。具体操作如下:
```sql
SELECT SUBSTRING_INDEX(col1, ',', 1) AS col1_new FROM table1
UNION ALL
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(col1, ',', 2), ',', -1) AS col1_new FROM table1
UNION ALL
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(col1, ',', 3), ',', -1) AS col1_new FROM table1
...
```
其中,`SUBSTRING_INDEX(col1, ',', 1)`表示取`col1`字段中第一个逗号之前的字符串,`SUBSTRING_INDEX(SUBSTRING_INDEX(col1, ',', 2), ',', -1)`表示取`col1`字段中第一个逗号和第二个逗号之间的字符串,以此类推。通过`UNION ALL`将多个查询结果合并成一个结果集,即可将一个字段内容为用逗号分割的字符串转换成多条数据。
阅读全文