黑马程序员技术交流社区

标题: 【西安校区】MySQL查询时不区分大小写 [打印本页]

作者: 西安Java组    时间: 2017-12-14 00:24
标题: 【西安校区】MySQL查询时不区分大小写
本帖最后由 逆风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
        
        
   




作者: 逆风TO    时间: 2017-12-14 11:31
好文好文  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2