7

MySQL db テーブルにさまざまな言語でいくつかの国名があります。テーブルは utf8 をサポートできます。しかし、SELECT * FROM countries ORDER BY 'name_czech'常に英語をアルファベット順に並べ替えます

ここに画像の説明を入力

ここに画像の説明を入力

私の質問は、外国語フィールドでレコードをソートするにはどうすればよいですか?

4

3 に答える 3

1

私は質問、またはあなたが達成したいことを完全には理解していませんが、あなたが提供しているサンプルから、デフォルトの mysql の順序付け以外の順序付けは行われないと推測できます。列ごとに並べ替えるには、バッククォート (`) 文字を使用します。条件によっては、" 文字も使用できますが、それが必要かどうかは疑問です。

並べ替えの問題に戻ると、列の名前が何かを意味する場合、それらはチェコ語の名前だと思います。列にどのような照合順序があるかが重要です。utf8 czech 照合順序の場合、それに従って並べ替えが行われます。そうでない場合は、列に定義したもの以外の照合をいつでも強制できますORDER BY name_czech COLLATE utf8_czech_ci。これにより、それぞれの照合に並べ替えが適用されます。列が utf8 の場合、これ以上驚くことはありません。

基本的に、これは、列の照合が適切でない場合は (alter table によって) 列の照合を変更するか、クエリ中に照合を変更することに戻ります。

于 2012-12-24T15:24:59.373 に答える
1

一重引用符の代わりにバッククォートを使用したいかもしれません

SELECT * 
FROM countries 
ORDER BY `name_czech`
于 2012-12-24T04:44:22.820 に答える
0

了解しました。フィールド名の単一引用符を削除するだけです

select * from countries order by name_czech

すべての友人に感謝します。

于 2012-12-24T05:02:58.210 に答える