在登录账号的时候发现,自己的账号某个字母明明是大写,但输入小写也查询出来了,后来发现这是因为mysql在查询的时候,默认是不区分大小写的,对此有三种结解决方法
第一种:在建表时就加上区分大小写的属性,比如:
create table `usertable`(
`id` varchar(32) binary,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
或者
CREATE TABLE `usertable` (
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
但是这种方法对于很多朋友来说为时已晚,因为此时表已经建好,并且有数组在里面,不能随意删除,此时就只能采用第二种或第三种方法了。
方法二:修改字段属性,让其默认区分大小写,例如:
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8;
方法三:在查询的时候通过BINARY关键字进行查询区分,例如:
SELECT * FROM `tableName` WHER binary `fieldName`='Abc';