首页 > 数据库 >Mysql 字符集不一致导致连表异常的解决

Mysql 字符集不一致导致连表异常的解决

时间:2023-09-25 11:23:49浏览次数:76  
标签:ci utf8mb4 字符集 general 连表 xx Mysql

Mysql 字符集不一致导致连表异常的解决

 

做一个简单的如下的连表查询,居然直接提示错误,居然是字符集不一致的问题,本文记录一下mysql的字符集类型,感兴趣的可以了解一下。

目录

做一个简单的如下的连表查询,居然直接提示错误,居然是字符集不一致的问题,本文记录一下mysql的字符集类型,以及下面这个问题的解决方案

1

2

3

select a.id, b.id from tt as a, t2 as where a.xx = b.xx

 

-- Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='

1. 解决方法

先来看上面这个问题的解决方法,最容易想到的就是统一两张表的字符集,要么都是utf8mb4_general_ci,要么就都是utf8mb4_unicode_ci,统一一下这个问题就自然解决了
如果我不想修改表的字符集呢?毕竟生产环境下,做这种操作还是有风险的,下面是一种不太优雅的解决方法

在字段后面指定字符集(可以全部都指定为utf8mb4_general_ci 当然也可以全部指定为 utf8mb4_unicode_ci, 根据实际需要进行处理即可)

1

select a.id, b.id from tt as a, t2 as where a.xx = b.xx collate utf8mb4_general_ci

   

标签:ci,utf8mb4,字符集,general,连表,xx,Mysql
From: https://www.cnblogs.com/coder-wzr/p/17727517.html

相关文章

  • MySQL运维1-日志
    一、错误日志错误日志是MySQL中最重要的日志之一,它记录了当MySQL启动和停止时,以及服务器在运行过程中发生的任何严重错误时的相关信息,当数据库出现任何故障导致无法正常使用时,建议首先查看此日志错误日志默认是开启的,默认存在目录/var/log/,默认的日志文件名为mysqld.log......
  • MySQL可以查询自定义字段
     有时,为了方便起见,我们希望添加一列固定值来帮助查看MySQL中的数据,但又不希望这列出现在MySQL中。举个例子:mysql>createtablestudent(namevarchar(20));mysql>insertintostudentvalues('张三');    如果直接查询,结果如下:mysq>select*fromstudent;+--------+......
  • MySQL DATE_ADD() 函数
    定义和用法DATE_ADD()函数向日期添加指定的时间间隔。语法DATE_ADD(date,INTERVALexprtype)date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。type参数可以是下列值:Type值MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICRO......
  • mysql查询sum出来数据是decimal,转换成int
    mysql查询count数据是decimal,用python转换json格式的时候会报错,在查询的时候处理成无符号型,用cast查询出来countNum是DecimalSELECTgid,SUM(number)countNumFROM`gift_tb`WHEREtid="1"GROUPBYgid转换成无符号型SELECTgid,CAST(SUM(number)ASSIGNED)AScoun......
  • MySQL实战实战系列 04 深入浅出索引(下)
    在上一篇文章中,我和你介绍了InnoDB索引的数据结构模型,今天我们再继续聊聊跟MySQL索引有关的概念。 在开始这篇文章之前,我们先来看一下这个问题: 在下面这个表T中,如果我执行select*fromTwherekbetween3and5,需要执行几次树的搜索操作,会扫描多少行? 下面是这......
  • MySQL 的 blob 类型有哪些?
    MySQL中有两种主要的BLOB类型,用于存储二进制数据:TINYBLOB:TINYBLOB类型可以存储最多255字节的二进制数据。BLOB:BLOB类型可以存储最多65,535字节的二进制数据。此外,MySQL还有两种变体的BLOB类型,它们用于存储更大的二进制数据:MEDIUMBLOB:MEDIUMBLOB类型可以存储最多16,77......
  • MySQL系列3:缓冲池Buffer Pool的设计思想
    1.回顾上一篇我们主要讲了InnoDB的存储引擎,其中主要的一个组件就是缓存池BufferPool,缓存了磁盘的真实数据,然后基于缓存做增删改查操作,同时配合了后续的redolog、刷磁盘等机制和操作。如下图:这一篇,深入该组件内部,学习一下其设计思想。2.BufferPool数据结构BufferPool本......
  • Linux Centos7 虚拟环境安装Mysql数据库(超详细图文讲解)
    1、进入Centos7虚拟机,使用wget下载Mysql相应的rpm包下载:wgethttp://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm如果没有wget命令,可以使用yum安装,yuminstallwget2、执行rpm命令,安装rpmrpm-ivhmysql57-community-release-el7-8.noarch.rpm 3、安装Mys......
  • MySQL的配置文件中关于basedir和datadir的说明
    在MySQL的配置文件my.ini或者my.cnf文件中1、basedir参数原文说明为:Pathtoinstallationdirectory.Allpathsareusuallyresolvedrelativetothis.解释:该参数指定了安装MySQL的安装路径,填写全路径可以解决相对路径所造成的问题。例如:basedir="E:/dev/MySQL/MySQLS......
  • MySQL高可用MHA
    一、MySQL高可用MHA1.什么是MHAMHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达......