sql语句对数据库中的json数据的某个属性进行操作
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
mysql对json数据的操作
数据格式
两行测试数据
json里包含着数组
第一条数据包含deptId:[101,102]:
{"dep":[{"nodeId":101,"deptId":101,"parentDeptId":100,"deptName":"第一分公司"},{"nodeId":102,"deptId":102,"parentDeptId":100,"deptName":"第二分公司"}]}
第二条数据包含deptId:[103]:
{"dep":[{"nodeId":103,"deptId":103,"parentDeptId":101,"deptName":"研发部门"}]}
查询全部的deptId
json_extract(列名,json中属性名)
select json_extract(pushed,'$.dep[*].deptId') as deptIds from bus_accountability_and_integrity
查询结果
判断json数据中是否包含某个值
json_contains(json中属性名,要对比的值)
select * from bus_accountability_and_integrity where json_contains(pushed->'$.dep[*].deptId', '101')
对比结果(查询出了一条数据,第二条数据中parentDeptId也是101,但是我们把第一个参数精确到了deptId所以就查询不到了)
第三种json_extract搭配like查询更为灵活
查询pushed字段json数据中deptId属性值包含101的数据
select * from bus_accountability_and_integrity WHERE json_extract(pushed,'$.dep[*].deptId') like "%101%";
第二条数据的parentDeptId为101,我们仅需修改范围即可实现json数组中查找
查找范围扩大到dep包含的json数组中全部数据
select * from bus_accountability_and_integrity WHERE json_extract(pushed,'$.dep') like "%101%";
小伙伴们,可以根据自己需求手动修改;
tips:貌似从5.7以后的版本才能使用对json操作的函数;
如果这篇文章对你有帮助,请动动你发财的小手点点赞,证明你来过。
mysql新版本安装版下载地址
友情链接
GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:2 个月前 )
6be4e856
3 天前
663058e7
6 天前
更多推荐
已为社区贡献1条内容
所有评论(0)