my sql将字符串分列之后实现列转行
时间: 2023-03-25 20:02:01 浏览: 143
sql 列转行
可以使用 MySQL 中的 GROUP_CONCAT 函数来实现列转行。具体操作如下:
1. 使用 SUBSTRING_INDEX 函数将字符串按照分隔符分割成多个子串。
2. 使用 GROUP_CONCAT 函数将每个子串合并成一个字符串,并用逗号分隔。
3. 使用 GROUP BY 子句将每个字符串分组,然后将每个组合并成一个新的字符串。
示例代码如下:
SELECT
id,
SUBSTRING_INDEX(SUBSTRING_INDEX(str, ',', n), ',', -1) AS val
FROM
table1
INNER JOIN (
SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4
) n
ON CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, ',', '')) >= n - 1
GROUP BY
id;
其中,table1 是包含字符串列的表,str 是字符串列的名称,n 是需要分割的子串数量,id 是分组依据的列。
阅读全文