mysql字符串按逗号分割
时间: 2023-07-24 08:04:01 浏览: 97
mysql分割字符串
4星 · 用户满意度95%
如果您想将 MySQL 中的字符串按逗号分割成多个值,可以使用 MySQL 内置的函数 `SUBSTRING_INDEX()` 和 `GROUP_CONCAT()`。
假设您有一列名为 `sample_column` 的表 `sample_table`,其中包含逗号分隔的字符串,您可以使用以下查询来按逗号分割该字符串并将其转换为行:
```
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(sample_column, ',', numbers.n), ',', -1) AS value
FROM sample_table
CROSS JOIN
(
SELECT 1 n UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5
) numbers
WHERE value <> '';
```
在这个查询中,我们使用 `SUBSTRING_INDEX()` 函数两次来逐渐提取逗号分隔的字符串的每个值。然后,我们使用 `CROSS JOIN` 和一个子查询来生成一个数字序列,该数字序列的长度等于实际值的数量。最后,我们过滤出空值并返回每个值作为一个独立的行。
如果您想将这些值合并回一个逗号分隔的字符串,您可以使用 `GROUP_CONCAT()` 函数:
```
SELECT GROUP_CONCAT(subquery.value SEPARATOR ',') AS values
FROM
(
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(sample_column, ',', numbers.n), ',', -1) AS value
FROM sample_table
CROSS JOIN
(
SELECT 1 n UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5
) numbers
WHERE value <> ''
) subquery;
```
在这个查询中,我们使用之前的查询作为子查询,并使用 `GROUP_CONCAT()` 函数将每个值合并为一个逗号分隔的字符串。
阅读全文