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

默认状况下对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 后者需执行屡次?html

转自http://blog.sina.com.cn/s/blog_7f2122c501011ezh.htmlmysql

相关文章
相关标签/搜索