Resumo : neste tutorial, você aprenderá como usar a JSON_CONTAINS_PATH()
função MySQL para verificar se um documento JSON contém caminhos específicos.
Introdução à função JSON_CONTAINS_PATH() do MySQL
A JSON_CONTAINS_PATH
função é usada para verificar se um documento JSON contém caminhos específicos .
Aqui está a sintaxe da JSON_CONTAINS_PATH()
função:
JSON_CONTAINS_PATH(json_doc, one_or_all, path[, path] ...)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
json_doc
: este é o documento JSON no qual você deseja pesquisar os caminhos.one_or_all
: uma palavra-chave que especifica se você deseja localizar pelo menos um ou todos os caminhos especificados. Se for'one'
, a função retornará 1 se o documento JSON contiver pelo menos um, 0 caso contrário. Se o parâmetro for'all'
, a função retornará 1 se o documento contiver todos os caminhos especificados e 0 caso contrário.path
: esta é uma ou mais expressões de caminho que você deseja verificar no documento JSON.
A função é útil quando você deseja verificar se existem determinados caminhos no documento JSON.
Exemplos de funções JSON_CONTAINS_PATH() do MySQL
Vejamos alguns exemplos de uso da JSON_CONTAINS_PATH
função.
1) Verificando a existência de um único caminho
O exemplo a seguir usa a JSON_CONTAINS_PATH()
função para verificar se o documento JSON contém o caminho $.a
:
SELECT
JSON_CONTAINS_PATH(
'{"a": 1, "b": 2, "c": {"d": 4}}',
'one', '$.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 é 1 porque o documento JSON contém o caminho '$.a'
.
2) Verificando vários caminhos com o modo ‘um’
O exemplo a seguir usa a JSON_CONTAINS_PATH
função para verificar se o documento JSON contém pelo menos um dos dois caminhos especificados $.a
e $.e
:
SELECT
JSON_CONTAINS_PATH(
'{"a": 1, "b": 2, "c": {"d": 4}}',
'one', '$.a', '$.e'
) 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 1
porque o documento JSON contém pelo menos um dos caminhos especificados ( $.a
).
3) Verificando vários caminhos com o modo ‘todos’
O exemplo a seguir usa a JSON_CONTAINS_PATH()
função para verificar se o documento JSON contém todos os caminhos especificados $.a
e $.e
:
SELECT
JSON_CONTAINS_PATH(
'{"a": 1, "b": 2, "c": {"d": 4}}',
'all', '$.a', '$.e'
) result;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------+
| result |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, a função retorna 0 porque nem todos os caminhos especificados existem no documento JSON.
4) Caminhos aninhados
O exemplo a seguir usa a JSON_CONTAINS_PATH()
função para verificar se o documento JSON contém o caminho aninhado $.c.d
:
SELECT
JSON_CONTAINS_PATH(
'{"a": 1, "b": 2, "c": {"d": 4}}',
'one', '$.c.d'
) 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 )
Neste exemplo, o resultado é 1
porque o caminho $.c.d
existe no documento JSON.
5) Exemplo de caminho inexistente
O exemplo a seguir usa a JSON_CONTAINS_PATH()
função para verificar se o documento JSON contém o caminho $.a.d
.
SELECT
JSON_CONTAINS_PATH(
'{"a": 1, "b": 2, "c": {"d": 4}}',
'one', '$.a.d'
) result;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------+
| result |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A função retorna 0
porque o documento JSON não contém o caminho $.a.d
.
Resumo
- Use a
JSON_CONTAINS_PATH()
função para verificar se um documento JSON contém caminhos específicos.