Você pode pesquisar uma matriz de inteiros da seguinte forma:
JSON_CONTAINS('[1,2,3,4,5]','7','$') Returns: 0
JSON_CONTAINS('[1,2,3,4,5]','1','$') Returns: 1
Você pode pesquisar uma matriz de strings da seguinte maneira:
JSON_CONTAINS('["a","2","c","4","x"]','"x"','$') Returns: 1
JSON_CONTAINS('["1","2","3","4","5"]','"7"','$') Returns: 0
Observação:JSON_CONTAINS retorna 1 ou 0
No seu caso, você pode pesquisar usando uma consulta como esta:
SELECT * from my_table
WHERE JSON_CONTAINS(data, '2', '$');