sql 按,拆分成多条数据
时间: 2023-09-05 22:12:55 浏览: 2168
在 SQL 中,可以使用字符串分割函数将一个包含多个值的字符串按照指定分隔符拆分成多条数据,例如:
假设有一个表格 `users`,其中有一列 `interests` 包含多个兴趣爱好,用逗号 `,` 分隔,如下所示:
| id | name | interests |
|----|--------|----------------|
| 1 | Alice | Reading,Sports |
| 2 | Bob | Movies,Travel |
| 3 | Carol | Music,Food |
| 4 | David | Sports,Travel |
| 5 | Edward | Food,Reading |
现在需要将 `interests` 字段按照逗号 `,` 拆分成多条数据,可以使用以下 SQL 语句:
```sql
SELECT id, name, TRIM(SPLIT_STR(interests, ',', 1)) AS interest
FROM users
UNION ALL
SELECT id, name, TRIM(SPLIT_STR(interests, ',', 2)) AS interest
FROM users
WHERE interests LIKE '%,%'
UNION ALL
SELECT id, name, TRIM(interests) AS interest
FROM users
WHERE interests NOT LIKE '%,%';
```
上述 SQL 语句使用了 MySQL 中的字符串分割函数 `SPLIT_STR`,该函数的第一个参数为需要分割的字符串,第二个参数为分隔符,第三个参数为需要返回的分割后的数据的位置。
使用以上 SQL 语句,可以将 `users` 表格中的 `interests` 字段按照逗号 `,` 拆分成多条数据,得到以下结果:
| id | name | interest |
|----|--------|----------|
| 1 | Alice | Reading |
| 1 | Alice | Sports |
| 2 | Bob | Movies |
| 2 | Bob | Travel |
| 3 | Carol | Music |
| 3 | Carol | Food |
| 4 | David | Sports |
| 4 | David | Travel |
| 5 | Edward | Food |
| 5 | Edward | Reading |
阅读全文