mysql 大小写问题

1.创建表时

CREATE TABLE T(
    A VARCHAR(10)
);

对这个表,缺省情况下,下面两个查询的结果是一样的:

SELECT * FROM TABLE_NAME WHERE A='ABC';
SELECT * FROM TABLE_NAME WHERE A='Abc';

也就是说不区分大小写,而在数据库设计的时候,可能需要大小写敏感,解决方法是建表时候使用BINARY标示。

CREATE TABLE T(
    A VARCHAR(10) BINARY
);

2.使用工具修改

查看数据库结构后发现字符集用了utf8_bin,于是改为utf8_genaral_ci

问题解决。