【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

相關文章
相關標籤/搜索