2

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

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

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

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

提前谢谢。

快速编辑:我使用的是 UTF-8 字符编码

4

2 回答 2

2

如果您想确保没有相似的字符(如eé)被认为是相同的,您应该使用该utf8_bin列上的排序规则。我假设你现在正在使用utf8_general_ci,它会认为一些相似的字符是相同的。 utf8_bin只匹配完全相同的字符。

于 2012-10-24T18:24:40.117 回答
1

@G-Nugget 是正确的,但是由于您正在查看西班牙语内容,因此您可能还对utf8_spanish_ciutf8_spanish2_ci 感兴趣。它们对应于现代和传统的西班牙语。“ñ”被认为是一个单独的字母,在传统中“ch”和“ll”也被视为单独的字母。

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

于 2012-10-24T18:33:28.257 回答