最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解MySQL查詢(xún)時(shí)區(qū)分字符串中字母大小寫(xiě)的方法

 更新時(shí)間:2016年05月13日 15:27:28   作者:hudeyong926  
MySQL默認(rèn)是不區(qū)分大小寫(xiě)的,這個(gè)涉及到collate字符集與校驗(yàn)規(guī)則方面的知識(shí),下面會(huì)講到,這里我們就來(lái)詳解MySQL查詢(xún)時(shí)區(qū)分字符串中字母大小寫(xiě)的方法.

如果你在mysql有唯一約束的列上插入兩行值'A'和'a',Mysql會(huì)認(rèn)為它是相同的,而在oracle中就不會(huì)。就是mysql默認(rèn)的字段值不區(qū)分大小寫(xiě)?這點(diǎn)是比較令人頭痛的事。直接使用客戶(hù)端用sql查詢(xún)數(shù)據(jù)庫(kù)。 發(fā)現(xiàn)的確是大小不敏感 。
通過(guò)查詢(xún)資料發(fā)現(xiàn)需要設(shè)置collate(校對(duì)) 。
collate規(guī)則:

  • *_bin: 表示的是binary case sensitive collation,也就是說(shuō)是區(qū)分大小寫(xiě)的
  • *_cs: case sensitive collation,區(qū)分大小寫(xiě)
  • *_ci: case insensitive collation,不區(qū)分大小寫(xiě)

關(guān)于字符集與校驗(yàn)規(guī)則,mysql能:

1、使用字符集來(lái)存儲(chǔ)字符串,支持多種字符集;
2、使用校驗(yàn)規(guī)則來(lái)比較字符串,同種字符集還能使用多種校驗(yàn)規(guī)則來(lái)比較;
3、在同一臺(tái)服務(wù)器、同一個(gè)數(shù)據(jù)庫(kù)或者甚至在同一個(gè)表中使用不同字符集或校對(duì)規(guī)則來(lái)混合組合字符串;
4、可以在任何級(jí)別(服務(wù)器、數(shù)據(jù)庫(kù)、表、字段、字符串),定義不同的字符集和校驗(yàn)規(guī)則。

強(qiáng)制區(qū)分大小寫(xiě)

可以通過(guò)binary關(guān)鍵字,方法有兩種:
第一種:讓mysql查詢(xún)時(shí)區(qū)分大小寫(xiě)

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

 第二種:在建表時(shí)加以標(biāo)識(shí)

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中,存在大小寫(xiě)問(wèn)題的地方還有:
(1) 關(guān)鍵字: 不區(qū)分大小寫(xiě) select * fRom table_name 和 select * from table_name 效果是一樣的
(2) 標(biāo)示符(如數(shù)據(jù)庫(kù)名稱(chēng)和表名稱(chēng)):不區(qū)分大小寫(xiě)。如存在表users,那么select * from users和select * from uSers 效果一樣。網(wǎng)上說(shuō)這跟操作系統(tǒng)有關(guān),在所有Unit操作系統(tǒng)(除了使用HFS+的Mac OS 之外)上都是區(qū)分大小寫(xiě)的,而在windows上是不區(qū)分大小寫(xiě)的。(網(wǎng)上的這一說(shuō)法沒(méi)有驗(yàn)證過(guò),我在windows server2003上是不區(qū)分大小寫(xiě)的)
(3) 表的別名:不區(qū)分大小寫(xiě) select m.* from users m where M.username = 'aa';
(4) 列的別名:不區(qū)分大小寫(xiě) select uName from (select username as uname from users where id = 768) ;

相關(guān)文章

最新評(píng)論

大田县| 通江县| 贵德县| 奉化市| 虞城县| 华容县| 枝江市| 武威市| 迭部县| 高雄市| 广西| 昌平区| 呼玛县| 宜阳县| 富阳市| 绥芬河市| 抚松县| 滦南县| 渭南市| 屯昌县| 商丘市| 民勤县| 永丰县| 体育| 城固县| 湖北省| 洮南市| 蒙山县| 六安市| 乌兰县| 兴国县| 景宁| 彩票| 巴塘县| 穆棱市| 于田县| 营口市| 崇左市| 巧家县| 大余县| 新邵县|