选择像ù这样的字符

时间:2013-12-15 13:54:16

标签: mysql unicode collation

有一张包含2条记录的表格 - uù

CREATE TABLE `tbl` (`text` text NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `tbl` (`text`) VALUES ('u'), ('ù');

我想用ù:

选择行
SELECT * FROM `tbl` WHERE `text` = 'ù';

结果是

+------+
| text |
+------+
| u    |
| ù    |
+------+

这是什么问题?我该如何处理这些角色?

1 个答案:

答案 0 :(得分:4)

这与mysql比较值时使用的排序规则有关。如果运行以下查询,您将看到哪个排序规则有效:

show collation where Charset = 'utf8';

其中一个的Default值应为yes。就我而言,它是utf8_general_ci。此排序规则使用Unicode排序将字符与重音和不包含重音的字符等同。

如果您运行以下查询:

SELECT * FROM `tbl` WHERE `text` = 'ù' collate utf8_bin;

然后你只会回来一行。 MySQL documentation中有更多信息。