关于Mysql数据库建库字符集utf8mb4下,排序规则utf8mb4_bin和utf8mb4_general_ci选择造成的查询匹配大小写问题
场景描述:
项目采用了分库模式进行不同业务的开发,在共有的功能模块进行设计的时候采用主从库,或者各分库之中存在同样的库表结构,在使用过程中做库表同步的时候一定要保证库表所在的数据库的字符集和编码格式是保持一致的。否则完成库表同步或者迁移之后会造成查询问题:各独立库表查询数据都没有问题,但是在等值查询或者关联查询的时候会出现查询数据为空的现象;骚操作:在A库中把表建好了,copy到B库中,导致库表的排序规则不一致大小写匹配的时候出现问题。
逻辑描述:
在数据从app入库的时候存储的是大写的字符code:123XXX,然后数据库查询的时候传入的是小写的code:123xxx,这时候是能查到的。然后二次存入的时候会以二次输入的code作为入参,这样存到后台就变成小写的code:123xxx。这是数据库存在了大小写不同的数据,此时如果有存在关联查询以code为关联外键的时候会出现查询的时候存在大小写匹配失败导致查询失败。
所以:
不同的数据库建立一定要保持字符集和排序规则一致。
关于Mysql数据库建库字符集utf8mb4下,排序规则utf8mb4_bin和utf8mb4_general_ci选择造成的查询匹配大小写问题的更多相关文章
- MySQL数据库的库表迁移
最近在研究MySQL数据库的库表迁移问题,主要分为两种情况,一种情况是迁移数据库的表的全部字段,另一种是迁移数据库的表的部分字段.前一种情况是直接使用mysqldump命令来实现,后一种情况则是采用数 ...
- linux配置oracle11G监听及本地网络服务 及 数据库建库
配置监听及本地网络服务 在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面. 数据库建库 在oracle用户的图形界面oracle用户中,新开启一个终端 ...
- MySQL数据库在WINDOWS系统CMD下的编码问题
MySQL数据库在WINDOWS系统CMD下的编码问题 1. 查看MySQL数据库编码 * SHOW VARIABLES LIKE 'char%'; 2. 编码解释 * character_set_c ...
- 更改MySQL数据库的编码为utf8mb4
原文:http://blog.csdn.net/woslx/article/details/49685111 utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3 ...
- fedora中使用 mariadb数据库建库和建表-- mariadb数据库服务无法启动?
/proc(进程, 过程等含义) 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux® 内核空间(内核)和用户空间(用户)之间进行通信.在 /proc 文件系统中,我们可以将对虚拟文 ...
- 第十三章.MySQL数据库与JDBC编程(下)
JDBC的典型用法: JDBC4.2常用接口和类简介: DriverManager:用于管理JDBC驱动的服务类,程序中使用该类的主要功能是获取Connection对象,该类包含如下方法: publi ...
- mysql数据库从库同步延迟的问题
在从服务器上执行show slave status;可以查看到很多同步的参数,我们需要特别注意的参数如下,希望文章对各位会有所帮助. 在从服务器上执行show slave status;可以查看到很多 ...
- 修改MYSQL数据库表的字符集
MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令.包括查看 MySQL 数据库服务器字符集.查看 MySQL 数据库字符集,以及数据表和字段的 ...
- PHP操作MySQL数据库之天龙八部 -- 七贱下天山 -- 六脉神剑
天龙八部 八步操作数据库 七贱下天山 七步操作数据库 (将判断错误省略) 六脉神剑 六步操作数据库(将判断错误省略,将选择数据库添加到第一步 ...
随机推荐
- 网络编程-python实现-TCP(1.1.3)
@ 目录 1.TCP是什么 2.代码实现 1.TCP是什么 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由I ...
- Yii2 给表添加字段后报错 Getting unknown property
手动在数据库中添加了image字段 然后再模型类Image中的 rule方法也将image的验证规则放进去了 但是在 $model = new Image 后,使用$model->iamge 还 ...
- .Net MVC Redirect出现:服务器无法在已发送 HTTP 标头之后设置状态解决方案
使用过滤器控制权限时,若无权则跳转到无权页面,但是每次跳转都会出现 ERROR - System.Web.HttpException (0x80004005): 服务器无法在已发送 HTTP 标头之后 ...
- 其实吧,LRU也就那么回事。
这是why哥的第 81 篇原创文章 你面试的时候遇见过LRU吗? LRU 算法,全称是Least Recently Used. 翻译过来就是最近最少使用算法. 这个算法的思想就是:如果一个数据在最近一 ...
- 云服务器部署LAMP
一.安装Apache 1.安装httpd服务: sudo yum install httpd 2.开启服务: sudo systemctl start httpd 3.访问服务器IP成功显示Testi ...
- idea中快捷键换成熟悉的celipse中快捷键
打开idea,找到菜单栏的file,点击打开,找到settings,打开 用key做关键词搜索keymap 找到之后点击打开,右侧就会显示快捷键界面,可以点击查看每一项 4 默认为defaul ...
- 有两张表;使用SQL查询,查询所有的客户订单日期最新的前五条订单记录。
客户信息表(c CUSTOM)有以下字段:id.name.mobile 客户订单表(C_ORDER)有以下字段:id.custom_id.commodity.count.order _date Sel ...
- Service Mesh——微服务中的流量管理中间件
Service Mesh--微服务中的流量管理中间件 摘自-https://zhuanlan.zhihu.com/p/28794062 Service mesh 与 Cloud Native Kube ...
- [新手教程]申请https泛域名解析
前置准备 教程开始,我们默认相信小伙伴们对基本的域名购买及解析有了一定的认识和实践 一个正常的域名 一台公网服务器 域名解析操作 如:现在我们要设置frps的泛域名解析 设置二级域名 frp.xx.c ...
- CentOS-8.3.2011-x86_64 配置网络环境的几个方案以及问题处理方法
1. 在安装前的环境配置中配置网络 可以通过 NETWORK & HOST NAME 进行网络配置, 推介通过这里便捷设置. 如果在安装的 CentOS 之前的配置选项中没有进行用户和网络的配 ...