MySQL Forums
Forum List  »  Portuguese

pesquisa de dados em um campo JSON
Posted by: Jackeline Venson
Date: March 08, 2021 07:32AM

Tenho uma tabela com um campo JSON e preciso realizar consultas nele. EX:

Create table consultas( arq JSON)

INSERT INTO consultas (arq) VALUES('{"agendamento": "Teste", "resultados": [{"id": 1,"nome": "Fulano"}, {"id": 2,"nome": "Beltrano"}, {"id": 3,"nome": "Ciclano"}]}');

INSERT INTO consultas (arq) VALUES('{"agendamento": "Teste2", "resultados": [{"id": 4,"nome": "Fulano"}, {"id": 5,"nome": "Joao"}, {"id": 6,"nome": "Pedro"}]}');

INSERT INTO consultas (arq) VALUES('{"agendamento": "Teste3", "resultados": [{"id": 7,"nome": "Fulano", "fone":"222"}, {"id": 8,"nome": "Tiago"}, {"id": 9,"nome": "Zeca"}]}');
Preciso trazer um resultado que mostre os dados do id = 1. Seria mais ou menos isso:

select JSON_extract(arq, '$.resultados[*]') from consultas
where JSON_extract(arq,'$.resultados[*].id') = 1;
Mas isso nao me retorna nada. Eu preciso de um retorno mais ou menos assim: {1,Fulano}

ou ainda, consultar os dados dos nomes = 'Fulano'

select JSON_extract(arq, '$.resultados[*]') from consultas
where JSON_extract(arq,'$.resultados[*].nome') = 'Fulano';
[{1,Fulano},{4,Fulano},{7,Fulano,222}]

Não estou encontrando a logica para realizar essas consultas, detalhe que nao quero usar indices fixos nos arrays, por isso coloco o '*'.

Options: ReplyQuote


Subject
Views
Written By
Posted
pesquisa de dados em um campo JSON
590
March 08, 2021 07:32AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.