本文主要介绍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

发表回复

后才能评论