关于MySQL查询JSON的语法糖

本文主要介绍了在IT技术中,如何通过SQL查询针对JSON对象、纯数组以及嵌套结构进行数据计数和检索,包括`json_extract`、`JSON_SEARCH`和`JSON_CONTAINS`等函数的应用实例。

1. 根据单JSON对象查询

select count(1) from report_configuration r where json_extract(r.report_configuration,'$.dataSetName') = :dataSetName

2.纯数组JSON查询 one代表就遇到第一个就返回 固定写法

SELECT count(1) FROM statistics_property  where  data_set_name = :dataSetName  and   JSON_SEARCH(dimensions,"one", :propertyName) IS NOT NULL

3.Json数组套对象

SELECT * FROM statistics_property  where JSON_CONTAINS(statistics,JSON_OBJECT('metric','temp_back')) 

4.补充1

-- 检测json 集合里是否包含IMEI 字符串
SELECT * FROM product_template  where    JSON_SEARCH(read_only_params_unique_keys,"one", 'IMEI') IS NOT null;

-- 检测json 集合里是否包含IMEI 字符串
SELECT *
FROM product_template 
WHERE JSON_CONTAINS(read_only_params_unique_keys, JSON_QUOTE('IMEI'));


-- 检测json对象里是否包含这个键值对
SELECT * FROM product_template  where JSON_CONTAINS(identification_rules,JSON_OBJECT('6','10'));


-- 检查json对象里是否包含这个Key
select * from product_template  where json_extract(identification_rules,'$."6"') is not null;

MySQL中,可以使用一些函数和操作符来查询JSON字段。下面是一些常用的MySQL JSON查询使用方法: 1. 提取JSON字段的值:可以使用`->`操作符来提取JSON字段中的值。例如,如果有一个名为data的JSON字段,可以使用以下语法来提取其中的值: ``` SELECT data->'$.key' FROM table_name; ``` 其中,`key`是JSON对象中的属性名。 2. 查询JSON字段中数组或对象的长度:可以使用`JSON_LENGTH`函数来查询JSON字段中数组或对象的长度。例如,如果有一个名为data的JSON字段,可以使用以下语法来查询其长度: ``` SELECT JSON_LENGTH(data->'$.array_field') FROM table_name; ``` 其中,`array_field`是JSON字段中的数组或对象字段名。 3. 根据JSON字段的内容进行检索查询数据:可以使用`json_extract`函数进行查询,语法为: ``` json_extract(字段, "$.json属性") ``` 可以使用`JSON_CONTAINS`函数根据JSON数组进行查询,语法为: ``` JSON_CONTAINS(字段, JSON_OBJECT('json属性', '内容')) ``` 其中,`json属性`是JSON对象中的属性名,`内容`是要匹配的值。 希望以上信息对您有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mysql根据json字段内容作为查询条件(包括json数组)检索数据](https://blog.youkuaiyun.com/cbaln0/article/details/127550640)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Mysqljson类型查询](https://blog.youkuaiyun.com/weixin_44485508/article/details/131574430)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值