今天我在写查询条件时候,发现条件输入
select * FROM app_table_column_def WHERE table_name ='cs_Table';
查出的结果有点意外,大小写的都查出来了,如下
后来了解得知,MySQL 查询默认是不区分大小写的,如果需要区分大小写,就要在查询条件前加binary:
添加binary后,再写查询 select * FROM app_table_column_def WHERE binary table_name ='cs_table' ,
得到如下结果:
原理:mysql对于插入,varchar和text类型,binary属性可以为列分配该字符集的校对规则,binary属性是指定列字符集的二元校对规则的简写,排序和比较基于数值字符值,因此也就自然区分了大小写
因此,另外一种方法是在建表的时候加上标识binary
careate table cs_table(
table_name varchar(20) binary not null comment '表名',
... ...
)