mysql 中截取json对象中特定数据
2022-01-11 本文已影响0人
Geroge1226
1、场景:
业务中存在一张视频数据库表,其中,关于点赞数、下载数、评论数等以JSON
字符串对象存放在statistic
字段下。部分表字段截图如下:
业务需求:制作sql报表,查询出每个视频的各项数据。
image.png
2、实现
使用sql处理时需要截取JSON对象中某一项值,这里使用JSON_EXTRACT
函数。
函数作用:截取数据库中指定字段中存储的json数据中的某个字段对应的值
语法:JSON_EXTRACT(JSON字符串,$.特定项)
- 需求实现
sql
语句
-- {"share_count":1,"comment_count":1,"digg_count":7,"download_count":0,"forward_count":0,"play_count":0}
select
JSON_EXTRACT(a.statistic, '$.share_count') AS share_count,
JSON_EXTRACT(a.statistic, '$.comment_count') AS comment_count,
JSON_EXTRACT(a.statistic, '$.digg_count') AS digg_count,
JSON_EXTRACT(a.statistic, '$.download_count') AS download_count,
JSON_EXTRACT(a.statistic, '$.forward_count') AS forward_count,
JSON_EXTRACT(a.statistic, '$.play_count') AS play_count
FROM douyin_video_data a
- 效果如图: