本篇文章給大家分享的是有關(guān)使用gorm怎么對MySql數(shù)據(jù)庫進行操作,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比羅城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式羅城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋羅城地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。在使用gorm查詢的時候,會出現(xiàn)賬戶名A和a是一樣的情況,是因為mysql默認不區(qū)分大小寫造成的
1.問題產(chǎn)生的原因
MySQL在Windows下都不區(qū)分大小寫。
MySQL在Linux下數(shù)據(jù)庫名、表名、列名、別名大小寫規(guī)則是這樣的:
1、數(shù)據(jù)庫名與表名是嚴格區(qū)分大小寫的;
2、表的別名是嚴格區(qū)分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區(qū)分大小寫的;
MySQL在查詢字符串時是大小寫不敏感的,在編繹MySQL時一般以ISO-8859字符集作為默認的字符集,這個字符集對大小寫不敏感,因此在比較過程中中文編碼字符大小寫轉(zhuǎn)換造成了這種現(xiàn)象。
2、mysql中的排序規(guī)則
utf8_bin將字符串中的每一個字符用二進制數(shù)據(jù)存儲,區(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、在每一個條件前加上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è)置表的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"`以上就是使用gorm怎么對MySql數(shù)據(jù)庫進行操作,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
名稱欄目:使用gorm怎么對MySql數(shù)據(jù)庫進行操作-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://weahome.cn/article/psohd.html