VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

JSON_CONTAINS

功能描述

JSON_CONTAINS函数用于判断属性值是否存在。

根据target json是否包含candidate json返回t或f,返回t时表示属性值存在,返回f时表示不存在。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
  • 该功能仅在V2.2 Build 10 (Patch No.13)及以后版本支持。
  • 如果任何参数是NULL或者path没有指向target json的任何一部分,则返回NULL。
  • 当json_doc或path参数不符合对应类型时,或者path中含有*或**通配符时,函数执行报错。
  • 标量json(非数组json元素,非复合json对象)当且仅当它们是可以比较且比较结果为相等时是包含的;只有相同JSON TYPE的标量可以比较 (INTERGER和DECIMAL例外,它们可以互相比较)。
  • 一个candidate json数组被包含在target json数组是指:当且仅当每一个candidate元素被包含在target的某些元素中。
  • 一个candidate非json数组 被包含在target json数组是指:当且仅当该candidate被包含在target数组的某些元素中。
  • 一个candidate对象被包含在一个target对象是指:当且仅当对于candidate每个键,在target中都有相同名字的键,并且两个键所对应的值满足candidate值被包含在target值中。

语法格式

json_contains(target json, candidate json [, path jsonpath])

参数说明

  • target

    被查找的json。

  • candidate

    查找的json。

  • path

    负责指定target中特定的查找路径,默认为空。

    当path参数给出时,则要求target json中由path指定路径来判断是否包含,而不是整个target。

示例

调用函数。

select * from json_contains('{"a":1,"b":2,"c":{"d":4}}','1','$.a');

结果返回如下:

 json_contains
---------------
 t
(1 行记录)