MySQL 照合順序名は、次の規則に従います:
照合順序名は、関連付けられている文字セットの名前で始まり、通常は、他の照合順序特性を示す 1 つ以上の接尾辞が続きます。 たとえば、
utf8mb4_general_ci
とlatin1_swedish_ci
は、それぞれutf8mb4
とlatin1
の文字セットの照合順序です。binary
文字セットには、接尾辞のない単一の照合順序 (binary
とも呼ばれる) があります。言語固有の照合には、ロケールコードまたは言語名が含まれます。 たとえば、トルコ語とハンガリー語のルールをそれぞれ使用して、
utf8mb4
文字セットのutf8mb4_tr_0900_ai_ci
およびutf8mb4_hu_0900_ai_ci
ソート文字をソートします。utf8mb4_turkish_ci
とutf8mb4_hungarian_ci
は似ていますが、Unicode 照合アルゴリズムの新しいバージョンに基づいています。-
照合接尾辞は、照合で大/小文字が区別されるか、アクセントが区別されるか、またはカナが区別されるか (またはその一部の組合せ)、あるいはバイナリかを示します。 次のテーブルに、これらの特性を示すために使用される接尾辞を示します。
表 10.1 照合サフィクスの意味
サフィックス 意味 _ai
アクセントを区別しない _as
アクセントを区別する _ci
大文字小文字を区別しない _cs
Case-sensitive _ks
カナを区別する _bin
バイナリ アクセントの区別を指定しない非バイナリ照合順序名の場合、大文字と小文字の区別によって決定されます。 照合名に
_ai
または_as
が含まれていない場合、名前に含まれる_ci
は_ai
を意味し、名前に含まれる_cs
は_as
を意味します。 たとえば、latin1_general_ci
では、大/小文字が明示的に区別されず、暗黙的にアクセントが区別されません。latin1_general_cs
では、明示的に大/小文字が区別され、暗黙的にアクセントが区別されます。utf8mb4_0900_ai_ci
では、大/小文字が明示的に区別されず、アクセントも区別されません。日本語照合の場合、
_ks
接尾辞は照合順序がカタカナに依存することを示します。つまり、カタカナ文字とひらがな文字を区別します。_ks
接尾辞のない日本語照合は、カナに依存せず、カタカナ文字とひらがな文字をソート用に同等に扱います。binary
文字セットのbinary
照合順序の場合、比較は数値バイト値に基づきます。 非バイナリ文字セットの_bin
照合の場合、比較は、マルチバイト文字のバイト値とは異なる数値文字コード値に基づきます。binary
文字セットのbinary
照合順序と非バイナリ文字セットの_bin
照合順序の違いについては、セクション10.8.5「バイナリ照合順序と_bin 照合順序」 を参照してください。 -
Unicode 文字セットの照合順序名には、照合順序の基になる Unicode 照合アルゴリズム (UCA) のバージョンを示すバージョン番号を含めることができます。 名前にバージョン番号が含まれていない UCA ベースの照合では、version-4.0.0 UCA の重みキーが使用されます。 例:
utf8mb4_0900_ai_ci
は UCA 9.0.0 の重みキー (http://www.unicode.org/Public/UCA/9.0.0/allkeys.txt) に基づいています。utf8mb4_unicode_520_ci
は UCA 5.2.0 の重みキー (http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt) に基づいています。utf8mb4_unicode_ci
(バージョン名なし) は UCA 4.0.0 重みキー (http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt) に基づいています。
Unicode 文字セットの場合、
照合順序では、元のxxx
_general_mysql500_ci
照合順序の 5.1.24 以前の順序が保持され、MySQL 5.1.24 より前に作成されたテーブルのアップグレードが許可されます (Bug #27877)。xxx
_general_ci