Seleccione todas las filas donde clave en la matriz de valor clave JSON

ii iml0sto1

Bien, acabo de descubrir que puedes guardar y seleccionar el tipo de datos JSON en MySQL.

Traté de seguir la respuesta del usuario2458995 a una pregunta similar a la mía (la diferencia es mía es con una clave y el valor es una matriz) Copié su código exacto, creé la tabla, puse los datos de su inserción SQL y probé su selección, lo que me dio un error.

Modifiqué la tabla aquí para mostrar una muestra de cómo se almacenarán los datos en mi ejemplo.

Básicamente tengo esta configuración

CREATE TABLE my_table (id INT, data JSON);

INSERT INTO my_table VALUES (1, '{"hashtags": ["html", "php", "javascript"], "categories": [2,5,6]}'), (2, '{"hashtags": ["css", "jquery", "html"], "categories": [2,5,6]}')

Si quiero seleccionar todos los hashtags puedo hacerlo así

SELECT data->>"$.hashtags" FROM my_table

Pero, ¿cómo selecciono datos como en qué lugar?

Imaginé algo como esto

SELECT * FROM `my_table` WHERE 'html' IN (data->>"$.hashtags")

Se ejecuta, pero no devuelve filas. También probé varias otras formas sugeridas, pero no puedo hacer que nada funcione.

SELECT * FROM `my_table` WHERE JSON_CONTAINS('html', '$.hashtags')

Pensé que este sería un enfoque realmente bueno, pero ¿sería más inteligente almacenar cada categoría / hashtag en una fila única con una identificación de FK?

Espero que alguien pueda ayudarme aquí :)

GMB

Puede abordar esto con JSON_SEARCH(), disponible en MySQL 5.7:

select *
from `my_table` 
where json_search(data, 'one', 'html', null, '$.hashtags[*]') is not null

Explicación:

json_search(
    data,            -- json document to search
    'one',           -- the search terminates after the first match 
    'html',          -- search string argument
    null,            -- escape character: none
    '$.hashtags[*]'  -- path to search: the json array under attribyte 'hashtag'
)

Demostración en MySQL 5.7 DB Fiddle :

select 
    t.*,
    json_search(data, 'one', 'html', null, '$.hashtags[*]') matched_path
from `my_table` t 
where json_search(data, 'one', 'html', null, '$.hashtags[*]') is not null;

| id  | data                                                                 | matched_path    |
| --- | -------------------------------------------------------------------- | --------------- |
| 1   | {"hashtags": ["html", "php", "javascript"], "categories": [2, 5, 6]} | "$.hashtags[0]" |
| 2   | {"hashtags": ["css", "jquery", "html"], "categories": [2, 5, 6]}     | "$.hashtags[2]" |

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Seleccione todas las filas donde la matriz contiene valores de una lista dada en Postgres

Seleccione todas las filas donde todos los valores de la matriz están presentes en otra columna

Seleccione la columna donde aparece el valor en una matriz determinada y donde existe el valor de la columna para todas las entradas de la matriz

Seleccione TODAS las filas donde los valores de la columna Pandas DataFrame en una lista

Python encuentra todas las apariciones de la clave en JSON y modifica el valor

Explotar el valor de la clave JSON en nuevas filas

Seleccione todas las filas de una tabla, excepto donde la fila en otra tabla con la misma identificación tenga un valor particular en otra columna

seleccione pares clave-valor de json como filas en Snowflake

SQL Server: seleccione todas las filas donde la columna no contiene ningún valor de la tabla dinámica de valores

Elimine las etiquetas HTML y analice la matriz JSON en un objeto de clave / valor

Suma de filas en la matriz donde todas las columnas de la fila son iguales

Pandas que filtran todas las filas donde una palabra clave podría estar en varias columnas

Combinar el valor de una clave con todas las entradas de la matriz

PostgreSQL JSONB: actualice el nombre de la clave en todas las filas con una sola consulta

PostgreSQL JSONB: actualice el nombre de la clave en todas las filas con una sola consulta

Seleccione un valor en todas las filas donde un DataGridViewCheckBoxCell está marcado

MySQL Seleccione todas las filas de la tabla 1 y todas las filas de la tabla2 donde

Seleccione Join From 2 table en la que una de las tablas tiene un valor de matriz de clave de otra tabla

Deserializar JSON en Jackson donde la clave es un valor

Seleccione un valor de clave de la tabla MySQL donde una fila con la clave es mayor que otra

Seleccione la clave principal donde el valor máximo en el grupo clase SQL Server

SQLite: * evitar * que el valor de la CLAVE PRIMARIA se restablezca después de eliminar todas las filas

Creación de modelo para JSON donde la clave es un valor en Android

Postgres cómo encontrar filas en las que la columna de tipo jsonb contiene una clave con una matriz que contiene algún valor con o condición

Buscar palabras clave en todas las columnas de la tabla

Buscar palabras clave en todas las columnas de la tabla

convertir el valor de la clave de la matriz Json en una matriz js

Extraer un valor de SwiftDeferredNSDictionary por clave en Objective C donde la clave es Swift enum

Obtener objeto donde el valor de la clave es igual al valor de la matriz

TOP Lista

  1. 1

    ¿Cómo ocultar la aplicación web de los robots de búsqueda? (ASP.NET)

  2. 2

    Kibana 4 , making pie chart , error message

  3. 3

    Manera correcta de agregar referencias al proyecto C # de modo que sean compatibles con el control de versiones

  4. 4

    récupérer les noms de clés depuis Firebase react-native

  5. 5

    OAuth 2.0 utilizando Spring Security + WSO2 Identity Server

  6. 6

    Cómo eliminar o caducar las cookies en Chrome usando asp.net

  7. 7

    desbordamiento: oculto no funciona al hacer zoom en un iframe de YouTube usando transformar

  8. 8

    Cómo extraer una palabra clave (cadena) de una columna en pandas dataframe en python

  9. 9

    Link library in Visual Studio, why two different ways?

  10. 10

    선언되지 않은 유형 'MessagingDelegate'사용

  11. 11

    actualizar el contenido de la vista de reciclaje falla en la hoja inferior

  12. 12

    Ver todos los comentarios en un video de YouTube

  13. 13

    Problema con la vista de impresión de PDF

  14. 14

    ¿Cómo pintar el Dropline de un RowHeader-JTable en el Main-JTable durante un DragAndDrop?

  15. 15

    Pregunta de fórmula de desplazamiento y transposición de Excel / Google Sheets

  16. 16

    ¿Cómo puedo hacer accesible la información de color en tablas HTML?

  17. 17

    ¿Cómo generalizar el JSON en el procedimiento almacenado?

  18. 18

    Recortar fotos rectangulares de escaneos en OpenCV con Python

  19. 19

    2D 배열에 대한 Numpy 요소 별 평균 계산

  20. 20

    Typescript의 "window"전역 개체에 "adsbygoogle"애드 센스 속성을 추가하는 방법은 무엇입니까?

  21. 21

    Error: la ejecución falló para la tarea ': app: compileDebugJavaWithJavac'. java.io.FileNotFoundException:

CalienteEtiquetas

Archivo