Mysql Json函数之搜索 (三)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql Json函数之搜索 (三),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6188字,纯文字阅读大概需要9分钟。
内容图文
![Mysql Json函数之搜索 (三)](/upload/InfoBanner/zyjiaocheng/523/8e7d657bfba44fa6945b3146f7854681.jpg)
-
JSON_CONTAINS(
target
,candidate
[,path
])通过返回1或0指示给定的
candidate
JSON文档是否包含在target
JSON文档中,或者(如果提供了path
参数)指示是否 在目标内的特定路径上找到候选对象。返回NULL
是否有任何参数为NULL
,或者path参数没有标识目标文档的一部分。如果发生错误target
或candidate
不是有效的JSON文档,或者如果path
参数不是一个有效的路径表达式或包含一个*
或**
通配符。要仅检查路径中是否存在任何数据,请
JSON_CONTAINS_PATH()
改用。以下规则定义了围堵:
-
当且仅当候选标量可比较且相等时,才包含在目标标量中。如果两个标量值具有相同的
JSON_TYPE()
类型,则它们是可比较的,但 类型的值INTEGER
和DECIMAL
也可彼此比较。 -
当且仅当候选对象中的每个元素都包含在目标的某个元素中时,候选数组才包含在目标数组中。
-
当且仅当候选非数组包含在目标的某些元素中时,该候选非数组才包含在目标数组中。
-
当且仅当候选对象中的每个关键字在目标中存在一个具有相同名称的关键字并且与候选关键字相关联的值包含在与目标关键字相关联的值中时,候选对象才包含在目标对象中。
否则,候选值将不包含在目标文档中。
mysql> SET @j = ‘{"a": 1, "b": 2, "c": {"d": 4}}‘; mysql> SET @j2 = ‘1‘; mysql> SELECT JSON_CONTAINS(@j, @j2, ‘$.a‘); +-------------------------------+ | JSON_CONTAINS(@j, @j2, ‘$.a‘) | +-------------------------------+ | 1 | +-------------------------------+ mysql> SELECT JSON_CONTAINS(@j, @j2, ‘$.b‘); +-------------------------------+ | JSON_CONTAINS(@j, @j2, ‘$.b‘) | +-------------------------------+ | 0 | +---------------------------
-