MySql-Json函数Json数组查找JSON_SEARCH()使用-查找Json数组的值-JSON_SEARCH查找数值类型使用

5 篇文章 0 订阅
1 篇文章 0 订阅


前言

JSON_SEARCH()使用


一、对字符串类型进行查找

  1. 示例json:
[
{"day": 16, "userNo": "bd5b1e9ed1bc40f78c669ee868590aad", "salesNum": 22, "searchNum": 2, "publishNum": 6, "salesAmount": 44.28, "orderUserNum": 5, "newOrderUserNum": 2},
{"day": 17, "userNo": "919cbf1e743f421aa3d048863f0a4009", "salesNum": 5, "searchNum": 0, "publishNum": 2, "salesAmount": 13.04, "orderUserNum": 3, "newOrderUserNum": 0},
{"day": 18, "userNo": "20734604f0ab41c3bab7a5752aa40ece", "salesNum": 6,  "searchNum": 1, "publishNum": 5, "salesAmount": 18.21, "orderUserNum": 4, "newOrderUserNum": 1},
{"day": 19, "userNo": "919cbf1e743f421aa3d048863f0a4009", "salesNum": 3, "searchNum": 0, "publishNum": 8, "salesAmount": 8.52, "orderUserNum": 4, "newOrderUserNum": 1}
]

查找包含919cbf1e743f421aa3d048863f0a4009用户的数据

示例sql:

SELECT * 
FROM sjfw.count_product_category_sales_month 
where JSON_SEARCH(data_json,'all','919cbf1e743f421aa3d048863f0a4009');

;

二、对数值类型进行查找

解决MySqlJson字段的json列表查找方法JSON_SEARCH()只能对json列表里面的字符串类型的数据进行查找不能对数值类型的数据进行查找问题

需要查询到day=18的数据

select JSON_EXTRACT(data_json, concat('$[',aa,']')),aa,data_json
from (
         SELECT cast(replace(replace(JSON_SEARCH(
                                             REPLACE(REPLACE(REPLACE(JSON_EXTRACT(data_json, "$[*].day"),', ', '","'), '[', '["'),']', '"]'),
                                             'all', '18') ,'"$[',''),']"','') as SIGNED) aa,data_json
         FROM sjfw.count_product_sku_sales_month
         where month='2022-08' and sku='CJBHNSNS25088'
     )t
;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值