博主信息
博文 4
粉丝 0
评论 0
访问量 4108
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
数据库某个字段为二维数组json格式里的字段数据如何查询
雨天的小草的博客
原创
1384人浏览过

一、 场景如下:

数据表:父订单表 order_parent
字段:优惠明细 discount_detail(格式:json,例子
  1. [{"id": 157, "tip": "Coupon", "name": "优惠券"}])
目的:查询discount_detail中tip为指定值的所有数据,以统计营销活动相关支出(如优惠券Coupon)

二、探索过程:

通过查询网上资料得知,json一维数组格式([1,2,3])可以用mysql函数 json_contains 通过
  1. where json_contains(表字段,"要查询的值"

查询;嵌套数组格式({“id”:{“name”:”张三”}})查询name为张三 采用

  1. where json_contains(表字段,"张三", '$."id"."name"')
但是对于格式形如[{“id”: 157, “tip”: “Coupon”, “name”: “优惠券”}],这样的二维数组,一般的查询方法都不能生效

三、最终结果:

依然可以用 json_contains,不过里面要额外用一个函数 json_array 或者 json_object
完整查询语句如下:
  1. select * from order_parent where json_contains(discount_detail->'$[*].tip',json_array("Coupon"),'$')
或者
  1. select * from order_parent where json_contains(discount_detail, json_object("tip", "Coupon"))
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
1条评论
red hat 2024-05-07 09:45:15
感谢大哥分享
1楼
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学