A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 逆风TO 于 2017-12-14 10:20 编辑

在我们使用MySQL数据库进行查询时,如果条件是aaa或者aaA或者AAA都能查到同样的数据,说明MySQL的查询其实对大小写是不敏感的。那么在有些时候我们在查询数据的时候是需要严格区分大小写的,那我们该如何来进行查询呢?
在通过查询相关的资料,我们可以知道MySQL的collate规则有:
    *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
    *_cs: case sensitive collation,区分大小写
    *_ci: caseinsensitive collation,不区分大小写
那么解决大小写问题就有以下的方法:
    方法1:修改表的校对规则为"*_bin",这种修改对表中的所有字段有效。例如:
    ***修改表的校对:
        alter table custome character set utf8 collate utf8_bin;
    查询演示:a1.png

    方法2:建表或者修改表字段的collate为"*_bin",这种修改对当前列有效
        alter table custome modify column cname varchar(20) binary character set utf8 collate utf8_bin;
    查询演示:a2.png

    方法3:在查询的时候,给需要的列添加binary关键字修饰
        select * from custome where binary orderid = 'abc0001';
    查询演示:a3.png
        
        
   



1 个回复

倒序浏览
好文好文  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马