开发者社区> 问答> 正文

在Mysql(或者在js中)构建完整查询结果数组

是这样子的,我想实现从Mysql中查询结果之后调用给js的highchart画图用
现在我通过mysql的 类似select 数量,月份,状态 from table group by 月份,状态,结果如下:
数量 月份 状态
3 1月 成功
5 1月 失败
3 2月 成功
7 4月 失败
原本我想通过json化之后返回给前台画图。
但很显然,我用highchart画图的时候,需要一整年的数据,即如果某个月份,或者状态没有,这一个数量就必须是0. 而现在我通过类似“data[3].数量“只能获取4月份,失败的数量7,但我实际想调取2月份,失败的值,没有就是0.

现在我的思路是两个,一个是就是在mysql查询的之后直接构建完成完整的表,如下图(实际要一直构建到12月份)
数量 月份 状态
3 1月 成功
5 1月 失败
3 2月 成功
0 2月 失败
0 3月 成功
0 3月 失败
0 4月 成功
7 4月 失败

第二个思路是在js调取数据的时候,新建一个类似数组arr{1月{成功:数量;失败:数量}
2月{成功:数量;失败:数量}},将返回的data补齐,就是data数据中存在一个“1月 成功” 的数据 那我就把他赋值给arr[1月].成功,如果不存在,比如没有‘2月 失败’的数据,那么就给arr[2月].失败 赋值0. 然后一直构建完成到12月必败。

但是这两个思路的具体代码我都想不出来。。有没有哪位大神能给一个思路。。。

或者哪位大神有别的好想法,同样能够实现最终目的的也请请教下。。非常感谢!

展开
收起
杨冬芳 2016-07-07 14:37:23 2285 0
1 条回答
写回答
取消 提交回答
  • IT从业

    我比较倾向于您使用第二种方法,设计思想如下:
    1.使用脚本在页面初始化一个以月份为key,{"success":0,"failure":0}为值得这样一个对象的数组,数组长度为12(12个月份的)。其实默认每个月份成功和失败都是0.之后你便可以通过你传来的数据,循环update上面初始化后的数组。用月份的key做匹配的键。如果你需要使用highchart画图的话,还需要对这个数组做符合highchart格式要求的处理。
    2.把这个处理交给应用层做处理,增加一层应用层。

    2019-07-17 19:52:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像