我想排序包含希臘字符的表。表格的相應英文版本正在排序(ASC
和DESC
)就好了,每次點擊表格的標題。使用MySQL排序非英文名稱
我在希臘論壇上搜索過,唯一的解決方案是使用ORDER BY BINARY
。事實上,很多人都說使用二元順序解決了他們的問題。不幸的是,它並沒有在我的情況下。我知道,像德語這樣的語言存在同樣的問題,在這種語言中,變音符號的使用會擾亂順序,並且通常會在具有特殊字符的語言中使用。如果有人有任何想法如何克服這個問題,我將不勝感激。
我想排序包含希臘字符的表。表格的相應英文版本正在排序(ASC
和DESC
)就好了,每次點擊表格的標題。使用MySQL排序非英文名稱
我在希臘論壇上搜索過,唯一的解決方案是使用ORDER BY BINARY
。事實上,很多人都說使用二元順序解決了他們的問題。不幸的是,它並沒有在我的情況下。我知道,像德語這樣的語言存在同樣的問題,在這種語言中,變音符號的使用會擾亂順序,並且通常會在具有特殊字符的語言中使用。如果有人有任何想法如何克服這個問題,我將不勝感激。
根據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 |
+----+
| Α |
| Β |
| Γ |
| Δ |
| Ε |
| Ζ |
+----+
我正在使用MySQL 5.1.53。你建議我應該升級到最新的? – user926652 2012-01-03 20:30:46
@ user926652,它不適用於MySQL 5.1.x,但它在MySQL 6上有效 - 這就是我所能說的。無論你應該升級,我不能說。它似乎處於發展的早期階段,所以它可能不是一個好主意 - 但它會解決這個問題。 – kba 2012-01-03 20:34:27
從我從希伯來知道,非拉丁語言由他們的ASCII碼排序(或Unicode)的指數,一般應與喜歡的語言工作希臘語。所以我不知道問題出在哪裏。你能關注你的問題嗎? – 2012-01-03 20:07:40
我已將[tag:PHP]標籤更改爲[tag:MySQL],因爲這與PHP無關。另外,你能舉一個排序不好的例子嗎?只有幾個名字。什麼[charset](http://dev.mysql.com/doc/refman/5.0/en/charset.html)是你的表格? – kba 2012-01-03 20:09:36
問題是我沒有得到正確的順序。例如,以A開頭的單詞,即使在希臘語中也是字母表的第一個字母,它們幾乎出現在我桌子的盡頭。我不是PHP的專家,現在我想如果表的排序是問題? – user926652 2012-01-03 20:12:21