我有一个表,它的列类型是json类型。我想在这个领域做一个文本搜索,但它似乎是明智的搜索口音。
以下是一些基本的mysql查询:
SELECT '["étoile", "foo"]' LIKE '%etoil%'; -- return 1
SELECT '["étoile", "foo"]' LIKE '%étoil%'; -- return 1
结果与json类型不同
SELECT CAST('["étoile", "foo"]' AS JSON) LIKE '%etoil%'; -- return 0
SELECT CAST('["étoile", "foo"]' AS JSON) LIKE '%étoil%'; -- return 1
我也尝试过使用mysql json函数,
SELECT JSON_SEARCH( CAST('["étoile", "foo"]' AS JSON), 'all', '%etoil%'); -- return NULL
SELECT JSON_SEARCH( CAST('["étoile", "foo"]' AS JSON), 'all', '%étoil%');-- return "$[0]"
无法在json数据字段上指定字符集。
此时,解决方案是将列从json类型恢复为基本文本列(仍然包含json,但没有mysql验证)。
有没有可能使查询对json数据类型字段中的重音不敏感?
1条答案
按热度按时间vybvopom1#
尝试:
见db小提琴。