SELECT * FROM mytable WHERE LOWER(JSON_EXTRACT(metadata, "$.title")) = JSON_QUOTE("hello world") e SELECT * FROM mytable WHERE LOWER(metadata->"$.title") = JSON_QUOTE("hello world") funciona, mas não sei por que preciso usar JSON_QUOTE ao usar LOWER vs não precisar dele para uma pesquisa exata. Se alguém puder explicar o porquê, terei prazer em marcá-los como a resposta.