主頁 > 知識(shí)庫 > gorm操作MySql數(shù)據(jù)庫的方法

gorm操作MySql數(shù)據(jù)庫的方法

熱門標(biāo)簽:AI電銷 Linux服務(wù)器 呼叫中心市場需求 服務(wù)外包 地方門戶網(wǎng)站 百度競價(jià)排名 網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng)

1、表中字段區(qū)分大小寫的設(shè)置

在使用gorm查詢的時(shí)候,會(huì)出現(xiàn)賬戶名Aa是一樣的情況,是因?yàn)閙ysql默認(rèn)不區(qū)分大小寫造成的

1.問題產(chǎn)生的原因

MySQL在Windows下都不區(qū)分大小寫。
MySQL在Linux下數(shù)據(jù)庫名、表名、列名、別名大小寫規(guī)則是這樣的:

1、數(shù)據(jù)庫名與表名是嚴(yán)格區(qū)分大小寫的;
2、表的別名是嚴(yán)格區(qū)分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴(yán)格區(qū)分大小寫的;

MySQL在查詢字符串時(shí)是大小寫不敏感的,在編繹MySQL時(shí)一般以ISO-8859字符集作為默認(rèn)的字符集,這個(gè)字符集對大小寫不敏感,因此在比較過程中中文編碼字符大小寫轉(zhuǎn)換造成了這種現(xiàn)象。

2、mysql中的排序規(guī)則

utf8_bin將字符串中的每一個(gè)字符用二進(jìn)制數(shù)據(jù)存儲(chǔ),區(qū)分大小寫。utf8_genera_ci不區(qū)分大小寫,ci為case insensitive的縮寫,即大小寫不敏感。utf8_general_cs區(qū)分大小寫,cs為case sensitive的縮寫,即大小寫敏感。(注意:在Mysql5.6.10版本中,不支持utf8_genral_cs!?。?/blockquote>

3、解決辦法

 1、binary關(guān)鍵字

直接修改sql查詢語句,在要查詢的字段前面加上binary關(guān)鍵字即可。(不推薦)

1、在每一個(gè)條件前加上binary關(guān)鍵字

select * from user where binary username = 'admin' and binary password = 'admin';

2、將參數(shù)以binary('')包圍

select * from user where username like binary('admin') and password like binary('admin');

2、修改Collation屬性

創(chuàng)建表時(shí),直接設(shè)置表的collate屬性為utf8_general_cs或者utf8_bin;如果已經(jīng)創(chuàng)建表,則直接修改字段的Collation屬性為utf8_general_cs或者utf8_bin。

1、修改表結(jié)構(gòu)

ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;

2、修改字段(使用gorm設(shè)置表中字段區(qū)分大小寫)

`gorm:"unique" sql:"type:VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin"`

到此這篇關(guān)于gorm操作MySql數(shù)據(jù)庫的方法的文章就介紹到這了,更多相關(guān)gorm操作MySql數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • golang gorm 操作mysql及gorm基本用法
  • gORM操作MySQL的實(shí)現(xiàn)

標(biāo)簽:仙桃 銅川 黃山 衡水 湖南 崇左 湘潭 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《gorm操作MySql數(shù)據(jù)庫的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266