MySQL:“分组方式”不失分

MySQL:“分组方式”不失分,mysql,sql,Mysql,Sql,我有一张这样的桌子: name Smith Smith Perez Pérez 我想消除像史密斯这样的复制品,但同时保留佩雷斯和佩雷斯。 如果我使用“groupby”,我会得到两行Smith和两行Perez/Pérez中的一行,但我想得到三行Smith,Perez,Pérez。 舍格伦和舍格伦等的情况也是如此。 谢谢1首先检查您的表格是否有utf8字符集编码 select table_name,engine from information_schema.tables where table

我有一张这样的桌子:

name
Smith
Smith
Perez
Pérez
我想消除像史密斯这样的复制品,但同时保留佩雷斯和佩雷斯。 如果我使用“groupby”,我会得到两行Smith和两行Perez/Pérez中的一行,但我想得到三行Smith,Perez,Pérez。 舍格伦和舍格伦等的情况也是如此。
谢谢

1首先检查您的表格是否有utf8字符集编码

select table_name,engine 
from information_schema.tables
where table_schema = 'your_database'
2其次,如果不是这样,请跳到第3步,更改表utf8字符集编码,使其支持特殊字符集

ALTER TABLE `name` CHARACTER SET utf8;
3使用utf8字符集从数据库中选择

select * from your_table group by name collate utf8_general_ci

尝试使用utf8\u unicode\u ci而不是utf8\u general\u ci-它使用更精确的比较算法。

您使用的字符集/排序规则是什么?我认为将排序规则更改为您的语言会有所帮助我使用的是utf8/utf8\u general\u ci。我的表格是美国英语的,但也包含许多来自不同国家的外来数据。这是一个非常好的答案关于MySQL中的排序和字符集很有帮助:所以您将表设置为utf字符集8?utf8_general_ci在e和é之间没有区别。您需要unicode支持。@Danfrom Germany您是说utf8mb4\u unicode\u ci?您在其他答案中的评论是什么?@CodingAnt我的意思是至少使用utf8\u unicode\u ci,而不是utf8\u general\u ciI尝试使用utf8\u unicode\u ci,但仍然没有区分e和e。然后我尝试使用utf8mb4_unicode,得到了相同的结果:Perez和Pérez仍然被认为是相同的。