Função JSON_CONTAINS() do MySQL

Resumo : neste tutorial, você aprenderá como usar a JSON_CONTAINS()função MySQL para verificar se um documento JSON contém outro documento JSON.

Introdução à função JSON_CONTAINS() do MySQL

A JSON_CONTAINS()função verifica se um documento JSON( target) contém outro documento JSON( candidate) em um caminho .

Aqui está a sintaxe da JSON_CONTAINSfunção:

JSON_CONTAINS(target, candidate[, path])Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • target: este é o documento JSON de destino no qual você deseja verificar a presença do documento JSON candidato.
  • candidate: este é o documento JSON candidato que você deseja verificar no documento JSON de destino.
  • path: este é o caminho dentro do documento JSON de destino onde você deseja verificar o documento JSON candidato. O argumento path é opcional.

A JSON_CONTAINS()função retorna 1 se o documento JSON de destino contém o documento JSON candidato ou 0 caso contrário.

A JSON_CONTAINS()função retorna NULLse algum argumento for NULLou se o argumento path não identificar uma seção do documento de destino.

A função emite um erro nos seguintes casos:

  • O destino ou candidato não é um documento JSON válido.
  • path argumento não é uma expressão de caminho válida.
  • O caminho contém um  curinga * ou  ** .

Exemplos de funções JSON_CONTAINS() do MySQL

Vamos explorar alguns exemplos para entender como a JSON_CONTAINS()função funciona.

1) Verificação de valores escalares

O exemplo a seguir usa a JSON_CONTAINS()função para verificar se o valor escalar 1 está contido em um documento JSON de destino no caminho '$.a':

SELECT 
  JSON_CONTAINS(
    '{"a": 1, "b": 2, "c": {"d": 4}}', 
    '1', '$.a'
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+--------+
| result |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O resultado ocorre 1porque o candidato ao escalar 1está contido no documento JSON de destino no caminho especificado ‘ $.a‘.

2) Verificando elementos do objeto

O exemplo a seguir usa a JSON_CONTAINS()função para verificar se um objeto JSON candidato {"d": 4}está contido no documento JSON de destino no caminho $.c:

SELECT 
  JSON_CONTAINS(
    '{"a": 1, "b": 2, "c": {"d": 4}}', 
    '{"d": 4}', '$.c'
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+--------+
| result |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A função retorna 1porque o objeto JSON candidato está contido no documento JSON de destino no caminho especificado $.c.

3) Verificando elementos do array

O exemplo a seguir usa a JSON_CONTAINS()função para verificar se o documento JSON de destino contém a matriz JSON de destino no caminho $.numbers:

SELECT 
  JSON_CONTAINS(
    '{"numbers": [1, 2, 3, 4, 5], "fruits": ["apple", "banana", "cherry"]}', 
    '[1, 2, 3]', '$.numbers'
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+--------+
| result |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A função retorna 1

O resultado ocorre 1porque a matriz JSON [1, 2, 3]está contida no documento JSON de destino no caminho especificado $.numbers.

Resumo

  • Use a JSON_CONTAINS()função para verificar se um documento JSON contém outro documento JSON em um caminho especificado.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *