0%

关于mysql存贮json与json中数据的求和计算

mysql是关系型数据库,为了方便的记录更多的数据,现在工作中用的mysql记录得value是以json的形式记录的。

例如:

player_data表格结构是这样的:

1
2
3
4
5
6
DROP TABLE IF EXISTS `player_data`;
CREATE TABLE `player_data` (
`uid` bigint(20) NOT NULL COMMENT '用户ID',
`data` json NOT NULL COMMENT '游戏数据,以json形式包含',
PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

player_data中玩家的数据是这样记录的:

key:uid — value:{“data”: { “user_prize”: 0}

我需要计算所有玩家user_prize的总和,这样即可

1
select sum(data->"$.user_prize") from player_data where data->"$.user_prize" is not null

mysql中存贮json,应用十分的强大,不仅可以存贮单层的key(如上),还可以可以存贮多层的key,关于多层key的应用之后在更新。