【发布时间】:2021-03-13 09:11:37
【问题描述】:
创建表:
CREATE TABLE comprehensive_risk_summary (
set_id BINARY(16) PRIMARY KEY NOT NULL,
calculation_time DATETIME NOT NULL,
label VARCHAR(50) NOT NULL,
critical_count VARCHAR(60) NOT NULL,
median_risk VARCHAR(60)
);
插入数据的SQL表为:
INSERT INTO comp_risk VALUES (
UNHEX(REPLACE("5a9dbfca-74d6-471a-af27-31beb4b53bb2", "-","")),
"NOW()"
"{5/27/20, Apr. 2020, Aug 2019, Dec 2019}",
"{2, 4, 5, 4}",
"{1.05, 1.25, 1.07, 1.13}"
);
查询此表select * from comp_risk,响应如下:
"data": {
"patient_set_id": "5a9dbfca-74d6-471a-af27-31beb4b53bb2",
"calculation_time": "2020-12-01 11:57:34",
"label": "{5/27/20, Apr. 2020, Aug 2019, Dec 2019}",
"critical_count": "{2, 4, 5, 4}",
"median_risk": "{1.05, 1.25, 1.07, 1.13}"
}
我需要如下格式的最终数据:
{
"set_id": "5a9dbfca-74d6-471a-af27-31beb4b53bb2",
"calculation_time": "2020-12-01 11:57:34",
"internals" : [
{ "label" : "5/27/20",
"cat4_cnt": {
"count": 2
},
"median": 1.05
},
{ "label" : "Apr. 2019",
"cat4_cnt": {
"count": 4
},
"median": 1.25
},
{ "label" : "Aug. 2019",
"cat4_cnt": {
"count": 5
},
"median": 1.07
},
{ "label" : "Dec. 2019",
"cat4_cnt": {
"count": 4
},
"median": 1.13
}];
}
我无法弄清楚如何实现相同的功能,因为从数据库返回的数据返回的 JSON 没有键,只有值。我循环遍历对象行,比如"median_risk": "{1.05, 1.25, 1.07, 1.13}",如下所示:
for(ele in median_risk){
console.log('--->', ele);
}
但它返回不合逻辑的输出,例如:
---> 1
---> 2
---> 3
---> 4
---> 5
---> 6
---> 7
---> 8
---> 9
---> 10
---> 11
---> 12
---> 13
我被困了一段时间,如果有人可以帮助我解决这个问题或任何其他更好的方法,非常感谢!
MySQL 版本:5.7 将 AWS RDS Aurora DB 与 Nodejs 结合使用
【问题讨论】:
-
你试过
median_risk.split(', ')吗? -
@Anatoly。是的,它返回包含整个对象的新数组,如下所示:
[ '{1.11', ' 2.8', ' 2.5', ' 0.3}' ] -
@Akina 我已经更新了问题
-
@Akina 我的错。我修复了插入命令
-
NOW()不能用引号括起来 - 用引号括起来的是字符串文字,而不是函数调用。
标签: mysql node.js json amazon-web-services