2012-01-03 10 views
5

ギリシャ文字を含むテーブルをソートしようとしています。表のヘッダーをクリックするたびに、対応する英語版の表がソートされています(両方ともASCDESC)。英語以外の名前をMySQLで並べ替える

ギリシャのフォーラムで検索しましたが、唯一の解決策はORDER BY BINARYを使用することです。実際、多くの人々は、バイナリオーダーの使用が問題を解決したと言いました。残念ながら、それは私の場合はありません。私はドイツ語のようなウムラウトの使用が秩序を乱している言語や、一般的には特別なキャラクタを持つ言語で同じ問題が存在することを知っています。誰かがこの問題を克服する方法を知っていれば、私は感謝します。

+1

を返す必要があり、非ラテン言語は彼らのASCIIによって並べ替えられています(またはUnicode)インデックス、ギリシャ語。だから私は問題がどこにあるのかわかりません。あなたはあなたの質問に集中できますか? –

+0

私はあなたの[tag:PHP]タグを[tag:MySQL]に変更しましたが、これはPHPとは関係がないためです。また、よく分からないものの例を挙げることができますか?ちょうどいくつかの名前。どの[charset](http://dev.mysql.com/doc/refman/5.0/en/charset.html)があなたのテーブルですか? – kba

+0

問題は、私は正しい順序を取らないということです。たとえば、ギリシャ語でもアルファベットの最初の文字でもあるAで始まる単語は、表の最後に表示されます。私はPHPの専門家ではないので、テーブルの照合が問題であると思っていますか? – user926652

答えて

2

a thread on forums.mysql.comによると、テーブルの文字セットが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

+0

@ user926652、MySQL 5.1.xでは動作しませんが、MySQL 6では動作します。アップグレードする必要があるかどうかはわかりません。それは開発の初期段階にあるようですので、良い考えではないかもしれませんが、それはこの問題を解決します。 – kba

関連する問題