pesquisa de dados em um campo JSON
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 '*'.