MySQL MEMBRO DE

Resumo : neste tutorial, você aprenderá como usar o MEMBER OFoperador MySQL que determina se um valor é um elemento de um array JSON.

Introdução ao operador MySQL MEMBER OF

O MEMBER OFoperador retorna verdadeiro (1) se um valor for um elemento de uma matriz JSON ou falso (0) caso contrário.

Aqui está a sintaxe do MEMBER OFoperador:

value MEMBER OF (json_array)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • value: este é o valor que pode ser um documento escalar ou JSON.
  • json_array: este é o array JSON do qual você deseja verificar se o valor é um elemento.

A função retorna NULLse valueou json_arrayfor NULL.

Exemplos de operadores MySQL MEMBER OF

Vejamos alguns exemplos de uso do MEMBER OFoperador.

1) Exemplos básicos de operadores MEMBER OF

O exemplo a seguir usa o MEMBER OFoperador para verificar se o número 1 é um elemento de um array JSON [1,2,3]:

SELECT 
  1 MEMBER OF('[1,2,3]') result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+--------+
| result |
+--------+
|      1 |
+--------+
1 row in set (0.01 sec)Linguagem de código:  JavaScript  ( javascript )

O exemplo a seguir usa o MEMBER OFoperador para verificar se o número 4 é um elemento de um array JSON [1,2,3]:

SELECT 
  4 MEMBER OF('[1,2,3]') 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:  JavaScript  ( javascript )

2) Conversão de valor

O MEMBER OFoperador não realiza conversão durante a verificação. Por exemplo:

SELECT 
  '1' MEMBER OF('[1,2,3]') result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Como a string '1'não está no array de números [1,2,3], o MEMBER OFoperador retorna 0:

+--------+
| result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Observe que o MEMBER OFoperador não realiza uma conversão de tipo para a string.

Nesse caso, você pode usar CASTpara converter a string '1'em número 1ao verificar assim:

SELECT 
  CAST('1' AS UNSIGNED) MEMBER OF('[1,2,3]') result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Agora o operador retorna verdadeiro porque o número 1 é membro da matriz JSON

+--------+
| result |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

3) Verificando um documento JSON

As seguintes tentativas de verificar se um objeto é membro de uma matriz:

SELECT 
  '{"name": "John"}' MEMBER OF (
    '[{ "name" : "John" }, { "name" : "Joe" }]'
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Ele retorna falso porque a função trata '{"name": "John"}'como uma string, não como um objeto JSON:

+--------+
| result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Para fazer isso, você precisa converter a string em JSON antes de passá-la ao MEMBER OFoperador:

SELECT 
  CAST('{"name": "John"}' AS JSON) MEMBER OF (
    '[{ "name" : "John" }, { "name" : "Joe" }]'
  ) 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:  JavaScript  ( javascript )

Resumo

  • Use o MEMBER OFoperador que determina se um valor é um elemento de uma matriz JSON.

Deixe um comentário

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