mysql之json字段值查询-JSON_CONTAINS、JSON_EXTRACT

一、JSON_CONTAINS

先来看看我百度到的定义和实例

mysql之json字段值查询-JSON_CONTAINS、JSON_EXTRACT

 

  mysql之json字段值查询-JSON_CONTAINS、JSON_EXTRACT

 

 

============================================================================

解读:参数主要有三个值,分别是json对象、值、json的具体key值(可缺省)

人话:前面包含后面为真则返回1(前面包含后面!!前面包含后面!!前面包含后面!!)

吐槽:有篇帖子写了是判断是否包含某个json值,让我绕了很久的圈无法理解实际使用时的返回

写法:

1.select * from A where JSON_CONTAINS(json对象,值,json的某个key)

  • 完整简单写法(key的值也是一个json):select * from A where JSON_CONTAINS(@json,‘1‘,‘$.keyname‘)  //筛选出json对象keyname这个key值包含1的记录
  • 不带path的写法(第一个参数已经是一个json)select  JSON_CONTAINS(A.xx,‘1‘) //根据A表xx字段(json值)是否包含1返回1或0
  • 结合JSON_ARRAY的写法,因为要前面包含后面,所以子集至少是[2,6]

mysql之json字段值查询-JSON_CONTAINS、JSON_EXTRACT

 

  • 结合JSON_ARRAY写法之筛选符合任意个数元素的记录,此时把JSON_ARRAY放前面,匹配字段放后面(满足需求:scene_id包含1或6就返回)

 mysql之json字段值查询-JSON_CONTAINS、JSON_EXTRACT

 

 

二、JSON_EXTRACT

mysql之json字段值查询-JSON_CONTAINS、JSON_EXTRACT

 

 mysql之json字段值查询-JSON_CONTAINS、JSON_EXTRACT

 

==============================================================================

 解读:提取json的key的值,如有多个则以数组返回

用法:可以用来判断或提取值,后面可以加like或=等匹配词,跟在select后面则返回符合的json字段值,跟在where后面则返回作为条件判断

mysql之json字段值查询-JSON_CONTAINS、JSON_EXTRACT

上一篇:C#中如何得到Graphics对象


下一篇:java certificate 工具 portecle.sourceforge.net