本文主要介绍gorm操作MySql数据库的方法,给大家讲的很详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友可以参考一下。
使用gorm进行查询时,帐户名A和A是相同的,因为mysql默认是不区分大小写的。
1.问题的原因。
Windows下MySQL不区分大小写。
在MySQL Linux下,数据库名、表名、列名和别名的大小写规则如下:
1.数据库名和表名严格区分大小写;
2.表的别名严格区分大小写;
3.列名和列别名在所有情况下都忽略大小写;
4.变量名也严格区分大小写;
MySQL在查询字符串时不区分大小写,编译MySQL时一般使用ISO-8859字符集作为默认字符集。这种字符集是不区分大小写的,所以这种现象是比较时中文编码字符的大小写转换造成的。
2.mysql中的排序规则
Utf8_bin以二进制数据存储字符串中的每个字符,区分大小写。Utf8_genera_ci不区分大小写,ci是case insensitive的缩写,即不区分大小写。Utf8_general_cs区分大小写,cs是case sensitive的缩写,即区分大小写。(注意:MySQL版本Mysql5.6.10不支持utf8_genral_cs!
3.解决办法
1.二元关键字
直接修改sql查询语句,在要查询的字段前添加binary关键字。(不推荐)
1.在每个条件前添加二进制关键字。
1 select * from user其中二进制用户名=’admin ‘,二进制密码=’ admin ‘;
2.用二进制(“”)将参数括起来
1 select * from user,其中用户名类似二进制(‘ admin ‘),密码类似二进制(‘ admin ‘);
2.修改排序规则属性
创建表格时,直接将表格的collate属性设置为utf8_general_cs或utf8 _ bin;如果已经创建了表,请直接将字段的排序规则属性修改为utf8_general_cs或utf8_bin。
1.修改表格结构
1 ALTER TABLE TABLENAME MODIFY COLUMN name VARCHAR(50)二进制字符集utf8 COLLATE utf8_bin默认为NULL
2.修改字段(使用gorm设置表中的字段区分大小写)
1 ‘ gorm:’ unique ‘ SQL:’ type:VARCHAR(255)字符集utf8 COLLATE utf8_bin ‘ ‘
这篇关于gorm操作MySql数据库的方法的文章到此为止。更多关于gorm操作MySql数据库的方法,请搜索脚本之家之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持剧本之家!
文章来自剧本之家,原文链接:https://www.jb51.net/article/207017.htm


