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!