我们知道mysql5.7开始就支持json字段的类型,很多时候用字段类型存数据会非常的方便。
今天我们探讨就是mysql跟json字段类型有关的查询,判断key是否存在。
mysql提供了大量的处理json字段的函数,对于key值得判断也提供了这样一个函数——json_contains_path(json_doc, one_or_all, paths)
下面就来解释一下这个函数的用法:
1.返回值:对于这种判断类型的函数返回的一般都是true or false 或者 1 和 0。这个函数也如此,在mysql返回的是1和0。
2.参数分析:json_doc顾名思义就是json数据;paths是指要找的key,可以传入多个的key参数;one_or_all指一个值是one表示找出paths参数中的任意一个,all表示找出全部。
如:
//是否含有positon key。
select json_contains_path("{'name':'chenxing', 'age':'保密','position':'php 工程师'}",
'one', '$.position')
//返回的结果是1
//是否同时含有position,age
select json_contains_path("{'name':'chenxing', 'age':'保密','position':'php 工程师'}",
'all', '$.position', '$.age');
//返回的结果是1
key的存在判断就是这么简单。
如果想掌握更多json函数的应用可以上mysql5.7官网查看。