在 where 子句 mysql 中完全匹配 utf8 中的单词

matching exactly word in utf8 in where clause mysql

我有这样的查询:

SELECT * FROM category_keyword  WHERE keyword = 'cho'

此查询是 return 结果 keyword ={ cho , chợ , chờ , chợ ...}。我只想要结果是 keyword = 'cho' (不是 'chợ, chờ ...')。我能怎么做? table 的排序规则是 utf8_unicode_ci

使用 utf8 排序规则,cho 等于 chờ。如果你想比较二进制:

SELECT * FROM category_keyword WHERE keyword = CONVERT('cho' USING binary)

将列的排序规则更改为 utf8_bin。这比使用 CONVERT 更好,因为它允许使用索引。但是,如果您有时需要 utf8_bin(完全匹配)并且有时需要 utf8_unicode_ci(用于大小写折叠和重音去除),那么您在性能方面就不走运了。