mysql如何将查询到的字符串分割成若干条记录
时间: 2023-06-24 20:08:32 浏览: 93
你可以使用MySQL内置函数`SUBSTRING_INDEX()`和`UNION ALL`语句来将查询到的字符串分割成若干条记录。下面是一个示例:
假设你有一个名为`example`的表,其中有一个名为`string`的字段,它包含了多个以逗号分隔的值,如下所示:
| id | string |
|----|---------------|
| 1 | apple,banana |
| 2 | orange,grape |
你可以使用以下语句将每个字符串分割成单独的记录:
```sql
SELECT id, SUBSTRING_INDEX(string, ',', 1) AS value
FROM example
UNION ALL
SELECT id, SUBSTRING_INDEX(SUBSTRING_INDEX(string, ',', 2), ',', -1) AS value
FROM example
WHERE string LIKE '%,%'
UNION ALL
SELECT id, SUBSTRING_INDEX(SUBSTRING_INDEX(string, ',', 3), ',', -1) AS value
FROM example
WHERE string LIKE '%,%,%'
-- 继续添加类似上述子查询,直到分割的最大数量
ORDER BY id;
```
这将返回以下结果:
| id | value |
|----|--------|
| 1 | apple |
| 1 | banana |
| 2 | orange |
| 2 | grape |
该查询将`example`表中的每个字符串分成了单独的记录,并将其与其所属的原始记录ID一起返回。请注意,子查询中的`SUBSTRING_INDEX()`函数用于指定要分割的字符串中的分隔符和分割的数量。`UNION ALL`语句用于组合所有子查询的结果。
阅读全文