當(dāng)前位置:首頁(yè) >  站長(zhǎng) >  編程技術(shù) >  正文

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

 2021-03-07 09:11  來(lái)源: 腳本之家   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

這篇文章主要介紹了gorm操作MySql數(shù)據(jù)庫(kù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下。

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

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

MySQL在Windows下都不區(qū)分大小寫(xiě)。

MySQL在Linux下數(shù)據(jù)庫(kù)名、表名、列名、別名大小寫(xiě)規(guī)則是這樣的:

1、數(shù)據(jù)庫(kù)名與表名是嚴(yán)格區(qū)分大小寫(xiě)的;

2、表的別名是嚴(yán)格區(qū)分大小寫(xiě)的;

3、列名與列的別名在所有的情況下均是忽略大小寫(xiě)的;

4、變量名也是嚴(yán)格區(qū)分大小寫(xiě)的;

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

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

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

3、解決辦法

1、binary關(guān)鍵字

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

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

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

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

1 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)

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

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

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

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

文章轉(zhuǎn)自腳本之家,原文鏈接:https://www.jb51.net/article/207017.htm

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)文章

  • MySQL5.7 集群配置的步驟

    這篇文章主要介紹了MySQL5.7集群配置的步驟,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下

    標(biāo)簽:
    mysql
  • MySQL中觸發(fā)器和游標(biāo)的介紹與使用

    這篇文章主要給大家介紹了關(guān)于MySQL中觸發(fā)器和游標(biāo)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

    標(biāo)簽:
    mysql
  • MySQL中exists、in及any的基本用法

    這篇文章主要給大家介紹了關(guān)于MySQL中exists、in及any的基本用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

    標(biāo)簽:
    mysql
  • MySQL正確修改最大連接數(shù)的3種方案

    這篇文章主要給大家介紹了關(guān)于MySQL正確修改最大連接數(shù)的3種方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

    標(biāo)簽:
    mysql
  • 教你怎么在Windows系統(tǒng)上手動(dòng)搭建MySql數(shù)據(jù)庫(kù)

    1.已經(jīng)購(gòu)買(mǎi)好的騰訊云輕量應(yīng)用服務(wù)器。2.作者本次演示使用的系統(tǒng)是WindowsServer2019,其他windows版本也可以,操作流程大同小異。3.使用Windows遠(yuǎn)程桌面連接騰訊云輕量服務(wù)器。

熱門(mén)排行

信息推薦