发生此情况一般是由于我们的数据区分大小写,但是mysql查询及存储默认情况是不区分大小写的,我们可以在定义表的时候就声明区分大小写。例如下面再定义usertable表的字段id时要求区分大小写,
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;
通过上面方式定义的字段id则区分大小写。使用select * from t_test where binary s_id=’a’,则不会查询出s_id=A的结果。