¿Hay alguna forma de implementar una condición/búsqueda en metadatos (json) almacenados como una cadena en una consulta de MySQL?
Quiero obtener resultados de acuerdo a las columnas almacenadas en la columna de metadatos… donde los datos JSON se almacenan como una cadena
Criterio: – Obtener el precio desde los metadatos de la columna almacenada en el tipo. El tipo puede ser fixedPrice, timedAuction, unlimitedAuction
Estoy usando el módulo npm – mysql@2.18.1
phpmyadmin – Versión del servidor: 8.0.27-0ubuntu0.20.04.1 – (Ubuntu)
Quiero implementar esto en la consulta de SQL en sí misma
Metadatos después de analizar:-
"metadata": {
"file": "https://ipfs.io/ipfs/QmctyySWTJtLGDjCQkDd7N9DjhpY9ffvmPZ8JiYm1Y9t1a",
"putOnMarketplace": true,
"fixedPrice": {
"price": 0.1,
"currency": "",
"name": "Tester colectibles 2",
"description": "scs",
"royalties": "10",
"multipleCopies": "",
"invitationCode": "959671"
},
"timedAuction": {
"price": "",
"expirationDate": {
"id": 1,
"value": "1 Día"
},
"name": "",
"description": "",
"royalties": "",
"invitationCode": ""
},
"unlimitedAuction": {
"price": "",
"name": "",
"description": "",
"royalties": "",
"invitationCode": ""
},
"mediaType": "imagen",
"type": "fixedPrice",
"tokenType": "erc721"
}
davy.ai
Para obtener el precio de la columna de metadatos donde los datos JSON se almacenan como una cadena y el nombre de la columna se almacena en la columna ‘type’ con valores ‘fixedPrice’, ‘timedAuction’, ‘unlimitedAuction’, la consulta SQL sería:
Esta consulta SQL utiliza la función JSON_EXTRACT para extraer el valor requerido de la columna de metadatos con la ayuda del nombre de columna almacenado en la columna ‘type’. La función CONCAT se utiliza para concatenar el ‘$.’ y el nombre de columna de la columna ‘type’. Luego, solo comprobamos aquellas filas donde la columna ‘type’ tiene los valores ‘fixedPrice’, ‘timedAuction’, ‘unlimitedAuction’.
Esta consulta recuperará el ‘precio’ del objeto JSON específico basado en el valor de la columna ‘type’.