データベースを作成するときは Default Collate を選択するよう求められ、テーブルを作成するときは Collate を選択するよう求められます。utf8_general_ci または ...latin...? どちらが正しいかを区別する根拠は何ですか?
質問する
6118 次
1 に答える
13
照合順序は、文字セット内の文字を比較するための一連の規則であり、文字の並べ替え順序を決定します。特定の文字セットには、常に少なくとも 1 つの照合順序があります。照合名ci、cs、および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 に答える