可能重复:
Looking for case insensitive MySQL collation where “a” != “ä”
我正在努力解决这个utf8
废话,我创建了一个测试表:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
我插入一行:
INSERT INTO `test`(`name`) VALUES ('Cryptïc');
我查询表:
SELECT `name` FROM `test` WHERE `name` LIKE 'Cryptic';
我得到结果集:
+---------+
| name |
+---------+
| Cryptïc |
+---------+
i
不应该等于ï
,有点帮助吗?
答案 0 :(得分:1)
使用utf8_bin
代替utf8_general_ci
。
使用utf8_general_ci
,类似字符(如i
和ï
)在比较和排序中被视为相同的字符。比较也不区分大小写(因此_ci
),这意味着i
和I
也被视为相同。
其他归类,例如utf8_unicode_ci
做了更好的排序,但在比较时仍然“失败”。