Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A coluna da consulta MySQL WHERE está na matriz json


Eu acho que você pode conseguir isso apenas no Mysql 5.7.

Na versão 5.7 você pode fazer algo como:
SELECT JSON_EXTRACT(json_field, '$.name');

e extrairá apenas a chave de nome do objeto json.

Pesquise todos os itens com a tag 'JavaScript':
SELECT * FROM `table` WHERE JSON_CONTAINS(json_field, '["JavaScript"]');

Encontre todos os itens com tags começando com 'Java':
SELECT * FROM `table` WHERE JSON_SEARCH(json_field, 'one', 'Java%') IS NOT NULL;

use 'one' para encontrar a primeira correspondência ou 'all' para encontrar todas as correspondências

Você pode extrair o apelido do Twitter usando um caminho JSON:
SELECT name, json_field->"$.twitter" AS `twitter` FROM `user`;

Você também pode fazer referência a um caminho JSON na cláusula WHERE para retornar apenas usuários com uma conta do Twitter:
SELECT name, profile->"$.twitter" AS `twitter` FROM `user` WHERE profile->"$.twitter" IS NOT NULL;

Você pode fazer mais coisas como:

  • Criando valores JSON

  • Normalização, mesclagem e encapsulamento automático de valores JSON

  • Pesquisando e modificando valores JSON

  • Comparação e Ordenação de Valores JSON

  • Agregação de valores JSON

para obter mais informações, consulte:https://dev.mysql. com/doc/refman/5.7/en/json.html