SELECT * FROM mytable WHERE LOWER(JSON_EXTRACT(metadata, "$.title")) = JSON_QUOTE("hello world") et SELECT * FROM mytable WHERE LOWER(metadata->"$.title") = JSON_QUOTE("hello world") fonctionne, mais je ne sais pas pourquoi j'ai besoin d'utiliser JSON_QUOTE lors de l'utilisation de LOWER vs ne pas en avoir besoin pour une recherche exacte.
Si quelqu'un peut expliquer pourquoi, je me ferai un plaisir de le marquer comme réponse.