召唤 mysql 大神,求助,让输出的结果可以用于 highcharts

2015-09-25 16:00:16 +08:00
 qq12365411

我的环境:
django django-rest-framework angular highcharts-ng

数据库 mysql

我目前的 sql 如下:
SELECT count(1) as num,DATE_FORMAT(created_at, '%Y-%m-%d') as riqi FROM Mytable group by (riqi) order by created_at desc limit 30 ;

输入内容如下:
num | riqi
2 | 2012-11-11
1 | 2012-11-12
1 | 2012-11-13
1 | 2012-11-14
1 | 2012-11-15
1 | 2012-11-16

然后输出到客户端 成了如下格式:

[{"num":2,"riqi":"2015-09-22"},{"num":1,"riqi":"2015-09-16"},{"num":1,"riqi":"2015-09-10"}]

这样的格式 无法 直接用于 highcharts

所以我想,让 mysql 输出为:

num | riqi
2,1,1 | 2015-09-22,2015-09-23,2015-09-24

如此的话,我就可以在客户端,就可以直接把 2 个值传递给 highcharts 的 categories 和 series 了

2303 次点击
所在节点    问与答
5 条回复
dukeardeal
2015-09-25 16:50:34 +08:00
先把 json 转成数组,还有把日期转换成时间戳
var mysqlData = '[{"num":2,"riqi":"2015-09-22"},{"num":1,"riqi":"2015-09-16"},{"num":1,"riqi":"2015-09-10"}]';
var data = eval("("+mysqlData+")");
var chartsData = [];
for (i = 0; i < data.length; i++) {
var datetime = data[i]["riqi"].replace(/-/g,'/');
chartsData.push([
Date.parse(new Date(datetime)),
parseFloat(data[i]["num"])
]);
}

然后 series 这样写调用数组就可以啦
series : [{
name : 'data',
data : chartsData
}]
dukeardeal
2015-09-25 17:01:09 +08:00
啊,没认真看帖,原来是要直接输出给 highcharts 用,请无视我。。。
markmx
2015-09-25 17:05:12 +08:00
GROUP_CONCAT
ljbha007
2015-09-25 17:10:13 +08:00
你自己合并一下就好了啊 非要插出来什么样就怎么返回么?
ljdawn
2015-09-26 13:00:52 +08:00
这毛关系都没有。。。。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/223651

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX