Mysql5.5,在做查询时,字段值明明是小写,但是where条件后面跟全是大写的值,这条数据也能查询出来。在网上找了一堆解决方法,在[mysqld]最后设置
还是不行!恳请回答!
ower_case_table_names 是表名区分大小写的标识;
mysql中大小写问题主要有以下两种:
A.表名区分大小写
在my.conf加入:
ower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
B.插入查询时区分大小写
字段值需要设置BINARY属性,即可区分大小写。
设置的方法有多种:
创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
使用alter修改:
ALTER TABLE tablename
MODIFY COLUMN cloname
VARCHAR(45) BINARY;
mysql table editor中直接勾选BINARY项。
mysql是大小写不敏感的。可以通过指定校对规则来区分大小写。
例如,可以在语句中指定校对规则:select * from t1 where b = 'DOG' collate utf8_bin;
此外也可以在创建表的时候指定校对规则。
任选一种即可:
select * from table where col='AA' collate utf8_bin;
select * from table where binary col='AA' ;
还有一种方案,可以直接更改表字段类型,若已存在数据,则不建议更改。