尽管有关于这个主题的所有讨论,但我无法解决排序问题。混淆了mysql中的排序规则
创建一个数据库有:
CREATE DATABASE Desk_Database CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
创建一个表叫用户和插入以下数据:
INSERT INTO Users (KlantGroep, TypeUser, Naam, Password) VALUES ("BNOF", "Manager", "André", "kkk"); INSERT INTO Users (KlantGroep, TypeUser, Naam, Password) VALUES ("BNOF", "User", "Ingrid", "ppp");
现在使用下面的查询它给出了一个时排回,但它不应该找到任何行,因为André
不同于Andre
:
SELECT klantgroep, typeuser FROM processors
WHERE naam = 'Andre' AND password = 'kkk';
什么是我不明白。我认为utf8_unicode_ci
不会丢掉e
的重音,但它显然是。
我考虑过这个,但我不知道从哪里开始在操作系统。 我使用Windows 7 Enterprise 32bit,荷兰语。 – eengebruiker
Windows 7不允许UTF8作为默认的操作系统编码,所以我不知道这是你的问题。如果您只是为了测试而访问Unix/Linux服务器,我会好奇的看看问题是否消失。看起来这可能是一个更适合ServerFault或SuperUser的讨论。 – davidethell
随着表中填充了两个给定的行,我不能再添加一行纳姆'André'或'安德烈'了。它应该接受'安德烈',但它不会。 恐怕我并不聪明,从你指点的讨论中找出正确的东西。切换到Unix服务器目前不适合我。 使用Windows 7时,是否有首选排序规则和字符集? – eengebruiker