あなたが望むものは、直接可能ではないと思います。 照合は、日付をソートして比較する方法を決定します。あなたのキーには、2つの値を別個のものとして見せたいが、通常の比較では同じものと見なすことを望む。
あなたのクエリを指定するときには、これがうまくいきます。照合を指定せずに結果をutf8にキャストするだけです。これにより結果がキャストされ、照合順序がデフォルトに戻されます。
次の例は、私が何を意味するかを示しています
mysql> show create table test_col;
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test_col | CREATE TABLE `test_col` (
`name` varchar(200) COLLATE utf8_bin DEFAULT NULL,
UNIQUE KEY `ixuniq` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> insert into test_col (name) values ('Y'),(unhex('c39d'));Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from test_col;
+------+
| name |
+------+
| Y |
| Ý |
+------+
2 rows in set (0.00 sec)
mysql> select * from test_col where name='Y';
+------+
| name |
+------+
| Y |
+------+
1 row in set (0.00 sec)
mysql> select * from test_col where convert(name using 'utf8')='y';+------+
| name |
+------+
| Y |
| Ý |
+------+
2 rows in set (0.00 sec)
照合設定によって課される等価性を完全に無視するvarbinary列を使用できます。私はIdがこれを良い考えとして推奨するとは思っていませんが、Imはそれを可能にしています。 – carpii