Mysql在查询时不区分大小写

今天我在写查询条件时候,发现条件输入 

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 '表名',

  ... ...

)

 

posted @ 2021-09-06 10:53  凉了记忆  阅读(1883)  评论(0编辑  收藏  举报