mysql是關係型數據庫,爲了方便的記錄更多的數據,現在工作中用的mysql記錄得value是以json的形式記錄的。
例如:
player_data表格結構是這樣的:
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的總和,這樣即可
select sum(data->"$.user_prize") from player_data where data->"$.user_prize" is not null
mysql中存貯json,應用十分的強大,不僅可以存貯單層的key(如上),還可以可以存貯多層的key,關於多層key的應用之後在更新。