了解mysql字符集和排序规则



我在mysql中有一个InnoDB表,其中包含utf8字符集和utf8_general_ci排序规则。在以下查询之后:

SELECT * FROM `ticket`
WHERE `text` LIKE '%abc%'
ORDER BY `created_date` DESC

它返回包含"äbc"和包含"abc"的行。我试过在表上使用utf8_bin排序规则,但并没有帮助。

我错过了什么?

附言:我以为问题出在PHP连接字符集上,但在Sequel Pro上执行查询后,我得到了同样的结果。

对于unicode排序规则(utf8_general_ci和utf8_unicode_ci),您有这样的等式:

Ä = A
Ö = O
Ü = U

这不是一个bug。

读这个http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html这个http://dev.mysql.com/doc/refman/5.0/en/charset-collation-effect.html

最新更新