1

MYSQL の結果の並べ替えに問題があります..

SELECT * FROM table WHERE something ORDER BY column ASC

は utf8_unicode_ci に設定されています。

その結果、最初にボスニア文字で始まる列を持つ行を取得、その後に他の文字を取得します..

šablabl
šeblabla
čeblabla
aaaa
bbaa
bbb
ccc

MYSQL のバージョンは 5.1.61 です

4

4 に答える 4

0

ユニコードのやり方ができているからです。すべての「通常の」ラテン文字は、ASCII と同じ数値の対応を取り戻し、その後、他の文化の他の文字が追加されました。つまり、アルファベットに 26 個の通常の ASCII 文字以外の文字が含まれている場合、Unicode では正しい順序で表示されません。

列の照合順序を変更する必要があると思います (文字セットも変更する必要があるかもしれませんが、そうでない場合もあります)。

中央ヨーロッパの照合を使用します。

幸運を !!

于 2012-10-20T12:15:45.610 に答える
0

それが本当にあなたが見ているものであるなら、あなたはバグを見つけました:utf8_unicode_ciは š を s と同等、 č を c と同等と見なすことになっています!

いずれにせよ、MySQL が中央ヨーロッパ言語の utf8 照合を十分にサポートしていないことは事実です。Czech 、Slovak、および Slovenian しか取得できません。これらのいずれもうまくいかない場合は、独自の utf8 collat​​ion を作成する、Unicode 以外の文字セットを使用して、そこで利用可能な照合を使用する必要があると思います。

于 2012-10-20T15:17:40.990 に答える