溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

使用gorm怎么對(duì)MySql數(shù)據(jù)庫(kù)進(jìn)行操作

發(fā)布時(shí)間:2021-03-08 11:20:48 來(lái)源:億速云 閱讀:755 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)使用gorm怎么對(duì)MySql數(shù)據(jù)庫(kù)進(jìn)行操作,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。

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

在使用gorm查詢(xún)的時(shí)候,會(huì)出現(xiàn)賬戶(hù)名Aa是一樣的情況,是因?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)鍵字

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ū)分大小寫(xiě))

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

以上就是使用gorm怎么對(duì)MySql數(shù)據(jù)庫(kù)進(jìn)行操作,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI