使用MySQL对非英文名称进行排序



我正在尝试对包含希腊字符的表进行排序。每当您单击表格的标题时,表格的相应英文版本(ASCDESC)都会被很好地排序。

我在希腊论坛上搜索过,建议的唯一解决方案是使用ORDER BY BINARY。事实上,许多人说二进制顺序的使用解决了他们的问题。不幸的是,我的情况并非如此。我知道像德语这样的语言也存在同样的问题,因为元音变音符的使用扰乱了语序,而一般来说,在有特殊特征的语言中也是如此。如果有人知道如何克服这个问题,我将不胜感激。

根据forums.mysql.com上的一个线程,在mysql 6.0中,如果表的字符集设置为utf8_general_ci,则可以对希腊语名称进行排序。

create table t (s1 char(1) character set utf8 collate utf8_general_ci); 
insert into t values ('Α'),('Β'),('Γ'),('Δ'),('Ε'),('Ζ');
select * from t order by s1;

以上应返回

+----+ 
| s1 | 
+----+ 
| Α  | 
| Β  | 
| Γ  | 
| Δ  | 
| Ε  | 
| Ζ  |
+----+ 

最新更新