环境 MySQL 7,使用 InnoDB 表引擎。
对唯一性约束的字段,若字符集区分大小写,校对规则不区分大小写,能存储区分大小写的值吗?
希望能达到“区分大小写的存储用户昵称,并支持搜索时不区分大小写”,看着阿里、微博的搜索工具都能做到,好羡慕啊……
简单试了一下,没成功:
CREATE TABLE `test_one` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`test` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `test` (`test`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
# Succeed insert
INSERT INTO `test`.`test_one` (`test`) VALUES ('name');
# Error insert: "SQL Error (1062): Duplicate entry 'nAme' for key 'test'"
INSERT INTO `test`.`test_one` (`test`) VALUES ('nAme');
可以把你的测试贴出来