一、JSON_CONTAINS

百度到的定义和实例

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

解读:参数主要有三个值,分别是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]

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

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐