Mysql Json函数之搜索 (三)

本节中的函数对JSON值执行搜索操作,以从其中提取数据,报告数据是否在其中的某个位置或报告其中的数据的路径。

  • JSON_CONTAINS(targetcandidate[, path])

    通过返回1或0指示给定的candidateJSON文档是否包含在targetJSON文档中,或者(如果提供了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 |
    +--------------------------
上一篇:Chatwin商务通


下一篇:Android开发环境——模拟器AVD相关内容汇总