下面按照我的场景:
CREATE TABLE `CustomerOrder` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,
`data` json DEFAULT NULL,
PRIMARY KEY (`id`)
);
我们可以使用这个客户订单 json 作为示例:
{
"creation": "2015-07-30 14:27:51",
"customer": {
"id": 2,
"email": "foo@bar.com"
},
"item": [
{
"sku": 182,
"unitPrice": 0.89,
"qty": 10
}, {
"sku": 712,
"unitPrice": 12.99,
"qty": 2
}
]
}
在 MySQL 控制台上运行此 SQL:
SELECT json_extract(data, '$.item[*].unitPrice') AS price FROM CustomerOrder
;
我会有这个输出:
[ 0.89, 12.99 ]
现在我如何评估 [0.89 + 12.99] 或 1..N 个项目元素的总和?
对于我的测试,我使用了这个版本的 MySQL Labs:
http://mysqlserverteam.com/json-labs-release-native-json-data-type-and-binary-format/