Oi, Carolina! Tudo bem?
Desde já, peço desculpas pela demora em retornar.
Para coletar os valores específicos de cada chave, você pode utilizar a função JSON_EXTRACT()
. Ela permite extrair valores de um objeto JSON com base em um caminho especificado. No seu caso, você pode usar a seguinte consulta para listar somente os valores com a chave 12:
SELECT JSON_EXTRACT(ANSWER, '$."12"') FROM sua_tabela;
Depois da cláusula SELECT
, iniciamos a função JSON_EXTRACT
indicando seu nome e depois passando como parâmetro a coluna da sua tabela e um conteúdo específico entre aspas simples: '$."12"'
.
- O carácter cifrão ($) é utilizado para representar o documento;
- o ponto seguido da abertura de aspas duplas, do número 12 e do fechamento das aspas (
."12"
) trata-se um seletor específico para as chaves iguais a "12".
Por fim, utilizamos FROM
e o nome da tabela para finalizar a sintaxe do SELECT
. Dessa forma, os valores retornados pela consulta serão 1, 2, 2 e 2, que correspondem aos valores da chave 12 em cada um dos registros da nossa tabela.
Quanto à sua pergunta sobre a saída da consulta ser em INT
, é possível converter o valor retornado pela função JSON_EXTRACT()
para inteiro utilizando a função CAST()
:
SELECT CAST(JSON_EXTRACT(ANSWER, '$."12"') AS signed)
FROM sua_tabela;
Inicialmente, precisamos iniciar a função CAST
passando seu nome, depois, adicionamos como parâmetro o código que construímos antes (referente ao JSON_EXTRACT
). Por fim, usamos a cláusula AS
(que significa "como" em português) juntamente com signed
, o qual transforma os dados para um formato de inteiro.
Espero ter ajudado, Carol! Caso surjam dúvidas após minha explicação ou durante os seus estudos, fico à disposição.
Um forte abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!