Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  グローバリゼーション  /  文字セットへの照合順序の追加

10.4 文字セットへの照合順序の追加

照合順序は、文字列を比較およびソートする方法を定義した一連のルールです。MySQL でのそれぞれの照合順序は、単一の文字セットに属しています。すべての文字セットには少なくとも 1 つの照合順序が属し、ほとんどの文字セットのは 2 つ以上の照合順序が属しています。

照合順序は重みに基づいて文字を順序付けします。文字セット内のそれぞれの文字が重みにマップされています。重みが等しい文字は同等と見なされ、重みが等しくない文字は、その重みの相対的な大きさに従って比較されます。

WEIGHT_STRING() 関数を使用すると、文字列内の文字の重みを確認できます。重みを示した返される値はバイナリ文字列であるので、HEX(WEIGHT_STRING(str)) を使用して重みを出力可能な形式で表示すると便利です。次の例は、大文字と小文字を区別しない非バイナリ文字列である場合は、'AaBb' 内の大文字と小文字で重みは異ならないが、バイナリ文字列である場合は異なることを示します。

mysql> SELECT HEX(WEIGHT_STRING('AaBb' COLLATE latin1_swedish_ci));
+------------------------------------------------------+
| HEX(WEIGHT_STRING('AaBb' COLLATE latin1_swedish_ci)) |
+------------------------------------------------------+
| 41414242                                             |
+------------------------------------------------------+
mysql> SELECT HEX(WEIGHT_STRING(BINARY 'AaBb'));
+-----------------------------------+
| HEX(WEIGHT_STRING(BINARY 'AaBb')) |
+-----------------------------------+
| 41614262                          |
+-----------------------------------+

セクション10.4.1「照合順序の実装タイプ」で説明するように、MySQL では複数の照合順序の実装をサポートしています。これらの中には、再コンパイルせずに、MySQL に追加できるものもあります。

  • 8 ビットの文字セットの単純な照合順序。

  • Unicode 文字セットの UCA ベースの照合順序。

  • バイナリ (xxx_bin) 照合順序。

以降のセクションでは、最初の 2 種類の照合順序を既存の文字セットに追加する方法について説明します。バイナリ照合順序については、既存の文字セットにもすでに用意されているので、ここでは追加方法は説明しません。

新しい照合順序を追加する手順のサマリー:

  1. 照合順序 ID を選択します。

  2. 照合順序に名前を付ける構成情報を追加し、文字順序付けルールについて記述します。

  3. サーバーを再起動します。

  4. 照合順序が存在していることを検証します。

ここでの説明では、MySQL を再コンパイルすることなく追加できる照合順序だけを取り上げます。再コンパイルを必要とする照合順序 (C ソースファイル内の関数を利用して実装されたものなど) を追加するには、セクション10.3「文字セットの追加」の手順を使用してください。ただし、完全な文字セットに必要なすべての情報を追加するのではなく、既存の文字セットに合わせて適切なファイルを変更します。つまり、文字セットの現在の照合順序ですでに存在するものに基づいて、新しい照合順序のデータ構造、関数、構成情報を追加します。

注記

既存の照合順序を変更すると、その照合順序を使用するカラムでインデックスの行順序に影響が及ぶことがあります。この場合、間違ったクエリー結果などの問題が起こらないように、これらのインデックスを再構築してください。詳細は、セクション2.11.3「テーブルまたはインデックスの再構築が必要かどうかのチェック」を参照してください。

追加のリソース


User Comments
Sign Up Login You must be logged in to post a comment.