5

データベースを作成するときは Default Collat​​e を選択するよう求められ、テーブルを作成するときは Collat​​e を選択するよう求められます。utf8_general_ci または ...latin...? どちらが正しいかを区別する根拠は何ですか?

4

1 に答える 1

13

照合順序は、文字セット内の文字を比較するための一連の規則であり、文字の並べ替え順序を決定します。特定の文字セットには、常に少なくとも 1 つの照合順序があります。照合名cics、およびbinの末尾は、それぞれ大文字と小文字を区別しない、大文字と小文字を区別する、およびバイナリを意味します。utf8_bin文字列の数値に基づいてバイナリ文字列を比較するため、通常、バイナリ照合順序も大文字と小文字を区別します。

これは、大文字と小文字を区別しない選択クエリを作成する場合、a と A が異なる場合、ci で終わる照合を使用する必要があることを意味します。a と A が異なる、大文字と小文字を区別するクエリを作成する場合は、cs または bin で終わる照合を使用する必要があります。

何も選択されていない場合は、標準レベルが適用されます。MySQL にはさまざまなレベルの照合があり、たとえば次のように表示できます。

mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
于 2012-04-05T15:52:46.667 に答える