加载中…
个人资料
绝世流浪汉
绝世流浪汉
  • 博客等级:
  • 博客积分:0
  • 博客访问:86,005
  • 关注人气:10
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

【MYSQL】mysql中的字符,字符串的大小写问题

(2012-03-08 10:30:15)
标签:

mysql

binary

大小写

it

分类: DBA
    默认情况下对mysql数据库中的字段(char, varchar)进行检索(where)或者排序(order)时都是不区分大小写的。

   在很多应用编程中,会有区分大小写的需求,这可以通过在mysql中建表时用binary属性事先定义来实现(原则上推荐使用该方法)
例如:

create table binary_column 
colum01 varchar(15) binary primary key,
colum02 char(15) binary
);

create table binary_column
colum01 varchar(15) binary primary key,
colum02 char(15) binary
);

对于已经存在的表则需要利用alter命令修改表定义
alter table binary_column modify colum02 char(15) binary;

但是对被定义成主键的字段进行修改时,需要先取消主键定义,然后修改其为binary属性,主键属性;
alter table binary_column drop primary key;
alter table binary_column modify colum01 varchar(15) binary primary key, key;

另外也可以在发行查询语句时,可以使用binary命令强制进行区分大小写的,(不过程序员容易忘记遗漏)
select * from binary_column where colum02 = binary 'AbCdE';
select * from binary_column where binary colum02 = 'AbCdE';

还有测试过几组数据,这两者的执行速度(explain),前者要快,理由还不得而知,有哪位同学知道,还请告知。是不是因为前者就执行了一次binary 后者需执行多次?

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有