在用函数 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

 

资料:http://blog.csdn.net/yangyu112654374/article/details/4251624