MySQL - 字符匹配

时间:2012-10-24 18:14:01

标签: mysql

如何让MySQL对字符匹配更加严格?

我的意思的一个简单例子,说我有一个单列`name`的表。在本专栏中,我有两个名字:'Jorge'和'Jorgé'这些名称之间的唯一区别是'在e上。如果我运行查询SELECT * FROM table WHERE name = 'Jorge',它将返回

+--------+
|  name  |
+--------+
| Jorge  |
| Jorgé  |
+--------+

如果我运行查询SELECT * FROM table WHERE name = 'Jorgé',它将返回相同的结果表。我如何将MySQL设置为更严格,以便它不会返回两个名称?

非常感谢。

快速编辑:我正在使用UTF-8字符编码

2 个答案:

答案 0 :(得分:2)

如果您想确保没有类似的字符(例如eé)被认为是相同的,那么您应该在该列上使用utf8_bin归类。我假设您现在正在使用utf8_general_ci,这会考虑一些相似的字符。 utf8_bin仅匹配完全相同的字符。

答案 1 :(得分:1)

@ G-Nugget是正确的,但既然您正在查看西班牙文的内容,您可能也会对 utf8_spanish_ci utf8_spanish2_ci 感兴趣。它们符合现代和传统的西班牙语。 “ñ”被认为是一个单独的字母,在传统中,“ch”和“ll”也被视为单独的字母。

更多信息:http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html