Mysql中行合并字段使用GROUP_CONCAT( column_name SEPARATOR ‘,’ )。例如:
SELECT id, GROUP_CONCAT(name SEPARATOR ',') FROM table GROUP BY id;
将字段拆分成行,需要使用SUBSTRING_INDEX函数结合一张tmp_numbers表来完成,需要split多少次,tmp_numbers表里就需要做多少行记录,记录从1开始累加。
建立tmp_numbers表的SQL
CREATE TABLE `tmp_number` (
`n` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
示例SQL:
select
SUBSTRING_INDEX(
SUBSTRING_INDEX(biz_table.name, ',', tmp_numbers.n), ',', -1) name
from
tmp_numbers inner join biz_table
on CHAR_LENGTH(biz_table.name)
- CHAR_LENGTH(REPLACE(biz_table.name, ',', ''))
>= tmp_numbers.n - 1
order by n