MySQL 5.1 リファレンスマニュアル :: 4 データベース管理 :: 4.10 MySQL のローカライズと国際的使用 :: 4.10.4 キャラクタ定義配列
« 4.10.3 新しいキャラクタ セットの追加

4.10.5 文字列照合サポート »
Section Navigation      [Toggle]
  • 4.10 MySQL のローカライズと国際的使用
  • 4.10.1 データおよびソート用キャラクタ セット
  • 4.10.2 英語以外のエラーメッセージ
  • 4.10.3 新しいキャラクタ セットの追加
  • 4.10.4 キャラクタ定義配列
  • 4.10.5 文字列照合サポート
  • 4.10.6 マルチ バイト文字サポート
  • 4.10.7 キャラクタ セットに関する問題
  • 4.10.8 MySQL サーバのタイム ゾーン サポート
  • 4.10.9 MySQL サーバのローケル サポート

4.10.4. キャラクタ定義配列

to_lower[] と to_upper[] は、キャラクタセットの各メンバに対応する、大文字と小文字を格納するシンプルな配列です。次に例を示します。

to_lower['A'] should contain 'a'
to_upper['a'] should contain 'A'

sort_order[] は、文字をどのような照合順序でソートするかを示すマップです。多くの場合(すべてのキャラクタセットについてではありませんが)、これは to_upper[] と同じです(ソートで大文字と小文字は区別しません)。MySQL は sort_order[] の値に基づいて文字をソートします。複雑なソート ルールに関しては、項4.10.5. 「文字列照合サポート」 の文字列照合に関する記述を参照してください。

ctype[] はビット値の配列で、1 文字が 1 要素です。注意: to_lower[]、to_upper[]、sort_order[] などは文字値でインデックス化しますが、ctype[] の場合は文字値 + 1 でインデックス化します。これは、EOF を処理することが必要だったときの古いレガシー (古い技術) です。

m_ctype.h に、次に示すビットマスク定義があります。

#define _U      01      /* Uppercase */
#define _L      02      /* Lowercase */
#define _N      04      /* Numeral (digit) */
#define _S      010     /* Spacing character */
#define _P      020     /* Punctuation */
#define _C      040     /* Control character */
#define _B      0100    /* Blank */
#define _X      0200    /* heXadecimal digit */

それぞれの文字の ctype[] エントリは、文字を指定するビットマスク値の組み合わせになる必要があります。たとえば、'A' は大文字(_U)であると同時に 16 進数(_X)でもあるため、ctype['A'+1] には次の値が含まれます。

_U + _X = 01 + 0200 = 0201
Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates