2012-01-03 78 views
5

我想排序包含希臘字符的表。表格的相應英文版本正在排序(ASCDESC)就好了,每次點擊表格的標題。使用MySQL排序非英文名稱

我在希臘論壇上搜索過,唯一的解決方案是使用ORDER BY BINARY。事實上,很多人都說使用二元順序解決了他們的問題。不幸的是,它並沒有在我的情況下。我知道,像德語這樣的語言存在同樣的問題,在這種語言中,變音符號的使用會擾亂順序,並且通常會在具有特殊字符的語言中使用。如果有人有任何想法如何克服這個問題,我將不勝感激。

+1

從我從希伯來知道,非拉丁語言由他們的ASCII碼排序(或Unicode)的指數,一般應與喜歡的語言工作希臘語。所以我不知道問題出在哪裏。你能關注你的問題嗎? – 2012-01-03 20:07:40

+0

我已將[tag:PHP]標籤更改爲[tag:MySQL],因爲這與PHP無關。另外,你能舉一個排序不好的例子嗎?只有幾個名字。什麼[charset](http://dev.mysql.com/doc/refman/5.0/en/charset.html)是你的表格? – kba 2012-01-03 20:09:36

+0

問題是我沒有得到正確的順序。例如,以A開頭的單詞,即使在希臘語中也是字母表的第一個字母,它們幾乎出現在我桌子的盡頭。我不是PHP的專家,現在我想如果表的排序是問題? – user926652 2012-01-03 20:12:21

回答

2

根據a thread on 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 | 
+----+ 
| Α | 
| Β | 
| Γ | 
| Δ | 
| Ε | 
| Ζ | 
+----+ 
+0

我正在使用MySQL 5.1.53。你建議我應該升級到最新的? – user926652 2012-01-03 20:30:46

+0

@ user926652,它不適用於MySQL 5.1.x,但它在MySQL 6上有效 - 這就是我所能說的。無論你應該升級,我不能說。它似乎處於發展的早期階段,所以它可能不是一個好主意 - 但它會解決這個問題。 – kba 2012-01-03 20:34:27