最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

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

來源:懂視網 責編:小采 時間:2020-11-09 20:49:51
文檔

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

詳解MySQL查詢時區分字符串中字母大小寫的方法:如果你在mysql有唯一約束的列上插入兩行值'A'和'a',Mysql會認為它是相同的,而在oracle中就不會。就是mysql默認的字段值不區分大小寫?這點是比較令人頭痛的事。直接使用客戶端用sql查詢數據庫。 發現的確是大小不敏感 。 通過查詢資料發現需要設置colla
推薦度:
導讀詳解MySQL查詢時區分字符串中字母大小寫的方法:如果你在mysql有唯一約束的列上插入兩行值'A'和'a',Mysql會認為它是相同的,而在oracle中就不會。就是mysql默認的字段值不區分大小寫?這點是比較令人頭痛的事。直接使用客戶端用sql查詢數據庫。 發現的確是大小不敏感 。 通過查詢資料發現需要設置colla

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

  • *_bin: 表示的是binary case sensitive collation,也就是說是區分大小寫的
  • *_cs: case sensitive collation,區分大小寫
  • *_ci: case insensitive collation,不區分大小寫
  • 關于字符集與校驗規則,mysql能:

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

    強制區分大小寫

    可以通過binary關鍵字,方法有兩種:
    第一種:讓mysql查詢時區分大小寫

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

     第二種:在建表時加以標識

    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) 關鍵字: 不區分大小寫 select * fRom table_name 和 select * from table_name 效果是一樣的
    (2) 標示符(如數據庫名稱和表名稱):不區分大小寫。如存在表users,那么select * from users和select * from uSers 效果一樣。網上說這跟操作系統有關,在所有Unit操作系統(除了使用HFS+的Mac OS 之外)上都是區分大小寫的,而在windows上是不區分大小寫的。(網上的這一說法沒有驗證過,我在windows server2003上是不區分大小寫的)
    (3) 表的別名:不區分大小寫 select m.* from users m where M.username = 'aa';
    (4) 列的別名:不區分大小寫 select uName from (select username as uname from users where id = 768) ;

    您可能感興趣的文章:

  • MySQL修改時區的方法小結
  • mysql中url時區的陷阱該如何規避詳解
  • MySQL timestamp的類型與時區實例詳解
  • mysql時區問題
  • 有關 PHP 和 MySQL 時區的一點總結
  • MySQL查看和修改時區的方法
  • 聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

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

    詳解MySQL查詢時區分字符串中字母大小寫的方法:如果你在mysql有唯一約束的列上插入兩行值'A'和'a',Mysql會認為它是相同的,而在oracle中就不會。就是mysql默認的字段值不區分大小寫?這點是比較令人頭痛的事。直接使用客戶端用sql查詢數據庫。 發現的確是大小不敏感 。 通過查詢資料發現需要設置colla
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    国产精品久久久久精品…-国产精品可乐视频最新-亚洲欧美重口味在线-欧美va免费在线观看