while-true-young

 

mysql8.0 JSON_CONTAINS使用方法

语法:
  JSON_CONTAINS(json_doc, val[, path]);
  第一个参数是json对象,第二个参数是匹配的值,第三个参数是指限制第一个参数的那个属性,可选,前两个必须有
案例:
  json = '{"A": 0, "B": {"C": 1}, "D": 2}';
  
json对象里面有三组数据,第一个A的值为0,第二个为B的值是一个json对象,第三个D的值是2
  
执行这个sql语句1:
  SELECT JSON_CONTAINS(@json, '2', '$.A')
  SELECT JSON_CONTAINS(@json, '{"C": 1}', '$.A');
结果都是:0
因为在@json对象里面,A的值和2或者json对象的值不匹配所以返回为0
执行这个sql语句2:
  SELECT JSON_CONTAINS(@json, '2', '$.D');
  
SELECT JSON_CONTAINS(@json, '{"C": 1}', '$.B');
结果都是:1
因为在@json对象里面,D的值和2匹配到了所以返回为1
B的值是json对象和第二个参数json对象的值一样,所以返回为1

这种函数一般用在数据库存储的类型是json的时候,判断json里面的数据和是否含有传递过来的参数使用这个可以返回结果
JSON_CONTAINS的第二个参数要是char类型,不可以是int类型,有时需要转换,就要用到convert函数转换
convert用法:
  convert(值,转换的类型)
SELECT JSON_CONTAINS(@json, '2', '$.A')
效果一样
SELECT JSON_CONTAINS(@json, convert(2,char), '$.A')
 
来自:https://blog.csdn.net/qsx741olm/article/details/98717097

posted on 2022-07-06 20:43  编写需求文档10万+  阅读(946)  评论(0)    收藏  举报

导航