一尘不染

如何在MySql中进行口音敏感搜索

mysql

我有一个带有utf8一般ci排序规则的MySQL表。在表中,我可以看到两个条目:

阿巴德
阿巴德

我正在使用如下查询:

SELECT *  FROM `words` WHERE `word` = 'abád'

查询结果给出两个词:

阿巴德
阿巴德

有没有办法表明我只希望MySQL找到带重音的单词?我希望查询仅返回

阿巴德

我也尝试过以下查询:

SELECT *  FROM `words` WHERE BINARY `word` = 'abád'

它没有给我任何结果。感谢您的帮助。


阅读 211

收藏
2020-05-17

共1个答案

一尘不染

如果您对该字段的搜索始终对重音敏感,则将该字段的排序规则声明为utf8_bin(这将比较utf8编码的字节是否相等),或使用特定于语言的排序规则来区分重音和un
-重音字符。

col_name varchar(10) collate utf8_bin

如果搜索通常对重音不敏感,但是您想对此搜索例外,请尝试;

WHERE col_name = 'abád' collate utf8_bin
2020-05-17