gorm操作MySql数据库的方法

这篇文章主要介绍了gorm操作MySql数据库的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。

在使用gorm查询的时候,会出现账户名A和a是一样的情况,是因为mysql默认不区分大小写造成的

1.问题产生的原因

MySQL在Windows下都不区分大小写。

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的缩写,即大小写敏感。(注意:在Mysql5.6.10版本中,不支持utf8_genral_cs!!!

3、解决办法

1、binary关键字

直接修改sql查询语句,在要查询的字段前面加上binary关键字即可。(不推荐)

1、在每一个条件前加上binary关键字

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

2、将参数以binary(”)包围

1 select * from user where username like binary(‘admin’) and password like binary(‘admin’);

2、修改Collation属性

创建表时,直接设置表的collate属性为utf8_general_cs或者utf8_bin;如果已经创建表,则直接修改字段的Collation属性为utf8_general_cs或者utf8_bin。

1、修改表结构

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

2、修改字段(使用gorm设置表中字段区分大小写)

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

到此这篇关于gorm操作MySql数据库的方法的文章就介绍到这了,更多相关gorm操作MySql数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

文章转自脚本之家,原文链接:https://www.jb51.net/article/207017.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/892134.html

(0)
上一篇 2025年1月3日 23:33:53
下一篇 2025年1月3日 23:34:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • MYSQL中char和varchar的区别

    这篇文章主要介绍了MYSQL中 char 和 varchar的区别,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 CHAR和VARCHAR类型相似,差别主要在存储,尾随空格和检索方式上。 CHAR和VARCHAR相同的是…

    2025年1月4日
    100
  • MySQL8.0如何快速加列

    这篇文章主要介绍了MySQL8.0 如何快速加列,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 前言: 很早就听说 MySQL8.0 支持快速加列,可以实现大表秒级加字段。笔者自己本地也有8.0环境,但一直未进行测试。本…

    2025年1月4日
    300
  • 聊聊MySQL中的参数

    这篇文章主要介绍了MySQL中的参数是什么,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 前言: 在前面一些文章中,经常能看到介绍某某参数的作用,可能有些小伙伴仍搞不清楚 MySQL 参数是啥。本篇文章我们来聊聊 MyS…

    数据库 2025年1月4日
    100
  • MySQL中的悲观锁与乐观锁

    这篇文章主要介绍了MySQL中悲观锁与乐观锁的相关资料,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下 在关系型数据库中,悲观锁与乐观锁是解决资源并发场景的解决方案,接下来将详细讲解

    数据库 2025年1月4日
    100
  • MySQL的自增ID(主键) 用完了的解决方法

    这篇文章主要介绍了MySQL的自增ID(主键) 用完了的解决方法,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下 在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值。一般情况下初始值都是从 0 开始,…

    数据库 2025年1月4日
    100
  • MySQL选择合适的存储引擎

    这篇文章主要介绍了MySQL如何选择合适的存储引擎,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 对于数据库这一块询问比较多的就是在 MySQL 中怎么去选择一种何时当前业务需求的存储引擎,而 MySQL 中支持的存储引…

    2025年1月4日
    100
  • Mysql脏页flush及收缩表空间原理解析

    这篇文章主要介绍了Mysql脏页flush及收缩表空间原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 mysql脏页 由于WAL机制,InnoDB在更新语句的时候,制作了写日志这一…

    2025年1月4日 数据库
    100
  • Mysql读写分离过期常用解决方案

    这篇文章主要介绍了Mysql读写分离过期常用解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 mysql读写分离的坑 读写分离的主要目标是分摊主库的压力,由客户端选择后端数据库进行查…

    2025年1月4日
    100
  • mysql常用备份命令和shell备份脚本分享

    这篇文章主要介绍了mysql常用备份命令和shell备份脚本,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 备份多个数据库可以使用如下命令: mysqldump -uroot -p123456 –databa…

    数据库 2025年1月4日
    100
  • Mysql误删数据解决方案及kill语句原理

    这篇文章主要介绍了Mysql误删数据解决方案及kill语句原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 mysql误删数据 使用delete语句误删数据行 使用drop table或…

    2025年1月4日 数据库
    100

发表回复

登录后才能评论

联系我们

156-6553-5169

在线咨询: QQ交谈

邮件:253000106@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

联系微信