在用函数 group_concat(`data`)进行转置时,发现转置后的数据顺序像二叉树排序。
后来用EXPLAIN 转置SQL 发现Extra:"Using where; Using filesort"
查看资料,索引的定义不正确导致,后来增加索引(series_no,af_id)
alter table cmv_af_data add index index_1(series_no,af_id);
表结构如下:
CREATE TABLE `cmv_af_data` (
`af_id` int(10) unsigned NOT NULL,
`series_no` mediumint(8) unsigned NOT NULL DEFAULT '0',
`data` float NOT NULL DEFAULT '0',
KEY `af_id` (`af_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
转置SQL:
select af_id,series_no,group_concat(cast(data as char))
from cmv_af_data
where af_id='1997129'
group by af_id,series_no