我正在开展一个项目,我需要在具有特殊字符的字段中添加搜索功能。不幸的是,我需要搜索的字段没有正确编码。
我想在字段中搜索单词kèku,但只需输入单词 keku (无重音符号)。
问题出现了,领域正在返回像Wèkikü¨sapëlee。这样的东西,而不是Wèmikèkosapëlee。
我已通过运行以下查询修复了该问题:
select CONVERT(CAST(CONVERT(text USING latin1) AS BINARY) USING utf8) as 'textlenape'
from samples_lenape where text_english like '%bright%'
返回我想要的文本,但是当我想通过在查询末尾添加collate utf8_general_ci
使其不区分大小写时,我收到以下错误:
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
如果我没有整理查询结果,我就无法搜索 keku ,因为我得到一个空的结果集。有关如何将其转换为能够进行不区分大小写的搜索的任何想法?我不想改变表数据,因为如果我这样做,网站的其余部分可能会中断。
答案 0 :(得分:0)
我明白了。我必须选择所有内容并在我的WHERE
子句中进行转换/整理。
select *
from samples_lenape
where CONVERT(CAST(CONVERT(text USING latin1) AS BINARY) USING utf8) like _utf8 '%keku%'
collate utf8_general_ci