sql >> Base de Datos >  >> RDS >> Mysql

Consulta Mysql DONDE la columna está en la matriz json

Creo que puedes lograr esto solo en Mysql 5.7.

En la versión 5.7 puedes hacer algo como:

SELECT JSON_EXTRACT(json_field, '$.name');

y extraerá solo la clave de nombre del objeto json.

Buscar todos los artículos con la etiqueta 'JavaScript':

SELECT * FROM `table` WHERE JSON_CONTAINS(json_field, '["JavaScript"]');

Buscar todos los artículos con etiquetas que comienzan con 'Java':

SELECT * FROM `table` WHERE JSON_SEARCH(json_field, 'one', 'Java%') IS NOT NULL;

use 'one' para encontrar la primera coincidencia o 'all' para encontrar todas las coincidencias

Puedes extraer el apodo de Twitter usando una ruta JSON:

SELECT name, json_field->"$.twitter" AS `twitter` FROM `user`;

También puede hacer referencia a una ruta JSON en la cláusula WHERE para devolver solo a los usuarios con una cuenta de Twitter:

SELECT name, profile->"$.twitter" AS `twitter` FROM `user` WHERE profile->"$.twitter" IS NOT NULL;

Puedes hacer más cosas como:

  • Creación de valores JSON

  • Normalización, fusión y ajuste automático de valores JSON

  • Búsqueda y modificación de valores JSON

  • Comparación y Ordenación de Valores JSON

  • Agregación de valores JSON

para obtener más información, consulte:https://dev.mysql. com/doc/refman/5.7/en/json.html