0

私はテーブルを持つUTF8 InnoDB dbを持っています.「words」と言います:

> desc words;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(50) | NO   | UNI | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

そしてクエリを実行すると

select * from word where name = 'Télécom';

説明できない奇妙な結果が得られます。

+------+---------+
| id   | name    |
+------+---------+
| 4980 | telecom |
+------+---------+

前もって感謝します!

4

1 に答える 1

2

これは、照合のためです。文字がどのように比較され、どの文字が等しいと見なされるかを定義します。それは望ましい結果かもしれませんし、そうでないかもしれません - 最後のケースでは、バイナリ照合を使用し、厳密に等しい文字列のみが等しいと見なされます。ただし、バイナリ照合順序でも大文字と小文字が区別されることに注意してください。

于 2012-05-09T19:17:51.530 に答える