MySQL db テーブルにさまざまな言語でいくつかの国名があります。テーブルは utf8 をサポートできます。しかし、SELECT * FROM countries ORDER BY 'name_czech'
常に英語をアルファベット順に並べ替えます
私の質問は、外国語フィールドでレコードをソートするにはどうすればよいですか?
私は質問、またはあなたが達成したいことを完全には理解していませんが、あなたが提供しているサンプルから、デフォルトの mysql の順序付け以外の順序付けは行われないと推測できます。列ごとに並べ替えるには、バッククォート (`) 文字を使用します。条件によっては、" 文字も使用できますが、それが必要かどうかは疑問です。
並べ替えの問題に戻ると、列の名前が何かを意味する場合、それらはチェコ語の名前だと思います。列にどのような照合順序があるかが重要です。utf8 czech 照合順序の場合、それに従って並べ替えが行われます。そうでない場合は、列に定義したもの以外の照合をいつでも強制できますORDER BY name_czech COLLATE utf8_czech_ci
。これにより、それぞれの照合に並べ替えが適用されます。列が utf8 の場合、これ以上驚くことはありません。
基本的に、これは、列の照合が適切でない場合は (alter table によって) 列の照合を変更するか、クエリ中に照合を変更することに戻ります。
一重引用符の代わりにバッククォートを使用したいかもしれません
SELECT *
FROM countries
ORDER BY `name_czech`
了解しました。フィールド名の単一引用符を削除するだけです
select * from countries order by name_czech
すべての友人に感謝します。