视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
详解MySQL查询时区分字符串中字母大小写的方法
2020-11-09 20:49:51 责编:小采
文档

如果你在mysql有唯一约束的列上插入两行值'A'和'a',Mysql会认为它是相同的,而在oracle中就不会。就是mysql默认的字段值不区分大小写?这点是比较令人头痛的事。直接使用客户端用sql查询数据库。 发现的确是大小不敏感 。
通过查询资料发现需要设置collate(校对) 。
collate规则:

  • *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
  • *_cs: case sensitive collation,区分大小写
  • *_ci: case insensitive collation,不区分大小写
  • 关于字符集与校验规则,mysql能:

    1、使用字符集来存储字符串,支持多种字符集;
    2、使用校验规则来比较字符串,同种字符集还能使用多种校验规则来比较;
    3、在同一台服务器、同一个数据库或者甚至在同一个表中使用不同字符集或校对规则来混合组合字符串;
    4、可以在任何级别(服务器、数据库、表、字段、字符串),定义不同的字符集和校验规则。

    强制区分大小写

    可以通过binary关键字,方法有两种:
    第一种:让mysql查询时区分大小写

    select * from usertable where binary id='AAMkADExM2M5NjQ2LWUzYzctNDFkMC1h'; 
    

     第二种:在建表时加以标识

    create table `usertable`( 
     `id` varchar(32) binary, 
     PRIMARY KEY (`id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
    

     或

    CREATE TABLE `usertable` ( 
     `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', 
     PRIMARY KEY (`id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
    

     在mysql中,存在大小写问题的地方还有:
    (1) 关键字: 不区分大小写 select * fRom table_name 和 select * from table_name 效果是一样的
    (2) 标示符(如数据库名称和表名称):不区分大小写。如存在表users,那么select * from users和select * from uSers 效果一样。网上说这跟操作系统有关,在所有Unit操作系统(除了使用HFS+的Mac OS 之外)上都是区分大小写的,而在windows上是不区分大小写的。(网上的这一说法没有验证过,我在windows server2003上是不区分大小写的)
    (3) 表的别名:不区分大小写 select m.* from users m where M.username = 'aa';
    (4) 列的别名:不区分大小写 select uName from (select username as uname from users where id = 768) ;

    您可能感兴趣的文章:

  • MySQL修改时区的方法小结
  • mysql中url时区的陷阱该如何规避详解
  • MySQL timestamp的类型与时区实例详解
  • mysql时区问题
  • 有关 PHP 和 MySQL 时区的一点总结
  • MySQL查看和修改时区的方法
  • 下载本文
    显示全文
    专题