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

詳解MySQL查詢時區(qū)分字符串中字母大小寫的方法

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

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

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

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

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

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

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

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

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

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中,存在大小寫問題的地方還有:
(1) 關(guān)鍵字: 不區(qū)分大小寫 select * fRom table_name 和 select * from table_name 效果是一樣的
(2) 標(biāo)示符(如數(shù)據(jù)庫名稱和表名稱):不區(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)上的這一說法沒有驗證過,我在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) ;

相關(guān)文章

最新評論

阿拉善左旗| 三都| 兴山县| 朝阳市| 开化县| 安龙县| 含山县| 张家港市| 上饶市| 安福县| 霍邱县| 固阳县| 应用必备| 黑山县| 兴城市| 安西县| 格尔木市| 荆州市| 正蓝旗| 渑池县| 林州市| 沁源县| 象州县| 苏州市| 东阳市| 固始县| 阳泉市| 阳新县| 兰州市| 仙桃市| 阿勒泰市| 修武县| 体育| 临朐县| 绵竹市| 和硕县| 上杭县| 达州市| 巨鹿县| 颍上县| 璧山县|