Mysql json_contains使用

在数据库中存入json字符串,使用sql查找包含什么元素

  1. json_contains(json对象,要查的值)使用这个查询前提是字段类型为json类型,注意,如果参数不是数据库中的字段的话,一定要加引号,就算是整型也得加

select * from osto_account where json_contains(role_ids, '6');

2. json_contains(json对象,值,json的某个key),数据库存的的数据是这样的[1,30,31],所以使用这个方法查询,使用上一种方法查询可能提示数据类型不匹配

select * from osto_account where json_contains(role_ids->'$',json_array(6), '$') ;

3. json_array() 转换为数组

select json_array(1,2,3) from dual ;

  1. json_contains_path这个函数用来判断是否有键名的,我的看法是这个函数基本用不到,数据库结果基本都是提前设计好的,不需要判断。第一个参数判断的目标,第二个参数是one或者all,第三个参数指定的键名,以后的参数都是键名,如果第二个参数是one,则其中一个键名存在则返回正确;如果第二个参数是all,则所有键名都存在才返回正确。

select * from member where json_contains_path(info, 'one', '$[0]');

select * from member where json_contains_path(info, 'one', '$[3]');

select * from member where json_contains_path(info, 'one', '$.a');

参考博文:https://huaweicloud.csdn.net/63356568d3efff3090b55737.html?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~OPENSEARCH~activity-1-125219985-blog-121397592.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~OPENSEARCH~activity-1-125219985-blog-121397592.pc_relevant_default&utm_relevant_index=2

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值