《Mysql學(xué)習(xí)詳解MySQL查詢時(shí)區(qū)分字符串中字母大小寫的方法》要點(diǎn):
本文介紹了Mysql學(xué)習(xí)詳解MySQL查詢時(shí)區(qū)分字符串中字母大小寫的方法,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
如果你在mysql有唯一約束的列上插入兩行值'A'和'a',Mysql會(huì)認(rèn)為它是相同的,而在oracle中就不會(huì).就是mysql默認(rèn)的字段值不區(qū)分大小寫?這點(diǎn)是比較令人頭痛的事.直接使用客戶端用sql查詢數(shù)據(jù)庫(kù). 發(fā)現(xiàn)的確是大小不敏感 .
通過查詢資料發(fā)現(xiàn)需要設(shè)置collate(校對(duì)) .
collate規(guī)則:MYSQL必讀
關(guān)于字符集與校驗(yàn)規(guī)則,mysql能:MYSQL必讀
1、使用字符集來存儲(chǔ)字符串,支持多種字符集;
2、使用校驗(yàn)規(guī)則來比較字符串,同種字符集還能使用多種校驗(yàn)規(guī)則來比較;
3、在同一臺(tái)服務(wù)器、同一個(gè)數(shù)據(jù)庫(kù)或者甚至在同一個(gè)表中使用不同字符集或校對(duì)規(guī)則來混合組合字符串;
4、可以在任何級(jí)別(服務(wù)器、數(shù)據(jù)庫(kù)、表、字段、字符串),定義不同的字符集和校驗(yàn)規(guī)則.MYSQL必讀
強(qiáng)制區(qū)分大小寫MYSQL必讀
可以通過binary關(guān)鍵字,方法有兩種:
第一種:讓mysql查詢時(shí)區(qū)分大小寫MYSQL必讀
select * from usertable where binary id='AAMkADExM2M5NjQ2LWUzYzctNDFkMC1h';
?第二種:在建表時(shí)加以標(biāo)識(shí)MYSQL必讀
create table `usertable`( `id` varchar(32) binary, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
?或MYSQL必讀
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) 關(guān)鍵字: 不區(qū)分大小寫 select * fRom table_name 和 select * from table_name 效果是一樣的
(2) 標(biāo)示符(如數(shù)據(jù)庫(kù)名稱和表名稱):不區(qū)分大小寫.如存在表users,那么select * from users和select * from uSers 效果一樣.網(wǎng)上說這跟操作系統(tǒng)有關(guān),在所有Unit操作系統(tǒng)(除了使用HFS+的Mac OS 之外)上都是區(qū)分大小寫的,而在windows上是不區(qū)分大小寫的.(網(wǎng)上的這一說法沒有驗(yàn)證過,我在windows server2003上是不區(qū)分大小寫的)
(3) 表的別名:不區(qū)分大小寫 select m.* from users m where M.username = 'aa';
(4) 列的別名:不區(qū)分大小寫 select uName from (select username as uname from users where id = 768) ;
MYSQL必讀
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/2436.html