Mysql json_contains使用
在数据库中存入json字符串,使用sql查找包含什么元素
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 ;
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://blog.csdn.net/Spanluobo/article/details/128863964
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341