先看sql

  o.city_name             AS '城市',o.city_code             AS '城市编码',o.comp_name             AS '公司',o.comp_code             AS '分公司编码',b.brand_name            AS '品牌',a.account_code          AS '被处罚系统号',l.occur_time            AS '处罚发生日期',l.penalize_time         AS '处罚最终判罚日期',l.create_time           AS '处罚数据导入时间',l.violation_behavior    AS '违规行为名称',l.reason                AS '事件描述',l.ryb_category          AS '红黄线',l.add_score             AS '分值',l.credit_score_log_type AS '类别'
FROM credit.credit_account a RIGHT JOIN credit.credit_score_log l ON l.credit_account_id = a.idLEFT JOIN credit.org o ON o.comp_code = l.comp_codeLEFT JOIN credit.brand_comp b ON b.comp_code = o.comp_code.user_credit_score_log u ON u.user_code = a.account_code;

  

报错提示:[HY000][1267] Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='

怀疑是 字符集 或者 排序规则 对应不上,于是通过mysql指令排查下字符集

SHOW FULL COLUMNS FROM credit.credit_account;
SHOW FULL COLUMNS FROM credit.org;
SHOW FULL COLUMNS FROM credit.credit_score_log;
SHOW FULL COLUMNS FROM credit.brand_comp;

  

credit_account表,org表,credit_score_log表,brand_comp表 四张表字符集分别如下:

经过分析发现 最后一张表 brand_comp 的varchar字段Collation 是  utf8mb4_unicode_ci,前三张表varchar字段段Collation 都是 utf8mb4_general_ci

于是更改表的字符集和排序规则,命令如下

ALTER TABLE brand_comp CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  此时再查询最后一张表

排序规则更改后,再执行sql,完美运行,问题解决!

转载于:https://www.cnblogs.com/wanghongsen/p/9727402.html

mysql中一次字符集和排序规则引起的sql查询报错相关推荐

  1. MySQL中支持的字符集和排序规则

    一.MySQL字符集概念 1.1 MySQL中的utf8和utf8mb4 我们常说 utf8 字符集表示一个字符需要使用1-4个字节,但是我们常用的一些字符使用1-3个字节就可以表示了.而在 MySQ ...

  2. mysql的四个默认数据库是什么版本,MySQL5.7数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列。...

    MySQL5.7数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列. 最初,服务器字符集和排序规则取决于启动mysqld时使用的选项.可以使用 --character-set-serv ...

  3. mysql 中文字符排序规则_mysql中字符集和排序规则说明

    数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). 一.字符集 字符集,即用于定义字符在数据库中的编码的集合. 常见 ...

  4. mysql选择排序规则_关于mysql创建数据库中字符集和排序规则的选择

    1:字符集: 一般 主要选择两种: 1:utf8   (看unicode编码区从1 - 126就属于传统utf8区,),一般都够用,除非需要存储特殊字符 2:utf8mb4(utf8mb4兼容utf8 ...

  5. mysql默认字符集和排序_MySQL字符集和排序规则

    MySQL在创建数据库是,需要设置数据库的字符集和排序规则,如图所示: 我觉得这里有必要解释下字符集和排序规则这两个概念. 字符集 说到字符集,需要先提下字符.字符集和字符编码这几个词的含义. 字符( ...

  6. mysql concat 不同字符集_字符编码 - 如何将整个MySQL数据库字符集和排序规则转换为UTF-8?...

    字符编码 - 如何将整个MySQL数据库字符集和排序规则转换为UTF-8? 如何将整个MySQL数据库字符集转换为UTF-8并将整理转换为UTF-8? 17个解决方案 591 votes 使用utf8 ...

  7. MySQL字符集和排序规则详解

    本篇博客主要记录mysql当中关于创建数据库时候选择:字符集.排序规则等相关知识.通过示例直观的看出其真正作用. 目录 1.前言 2.mysql字符集 2.排序规则 2.1.排序规则作用 2.2.排序 ...

  8. MySQL 批量修改数据库的字符集和排序规则

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  9. mysql连接校对_mysql字符集和校对规则(Mysql校对集)

    字符集的概念大家都清楚,校对规则很多人不了解,一般数据库开发中也用不到这个概念,mysql在这方便貌似很先进,大概介绍一下 简要说明 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于 ...

最新文章

  1. vim编辑器----常用命令
  2. PHP如何防止XSS攻击
  3. Arduino Yun快速入门教程(大学霸内部资料)
  4. java 面试题三十三 子类父类方法执行顺序的问题
  5. 微信开发学习日记(六):weiphp框架
  6. 推荐:解析“extern”
  7. android之ScrollView里嵌套ListView(转)
  8. Selenium之Action Chains类
  9. 瑜伽扭身祈祷式动作教程
  10. 关于DNF的多媒体包NPK文件的那些事儿(5)- IMG文件里的指向型索引项(指向帧)的深度与有向环检测
  11. 基于web的标签设计,打印工具,超diao
  12. 给数据库中的某个表添加一个字段!!!!!
  13. NewPanderKing 抬头是山,路在脚下! vs2010 问题 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  14. 关闭QQ弹出的腾讯网迷你版
  15. 正则表达式(判断中文,判断英文字母、下划线、数字)
  16. 数据分析的 5 种细分方法
  17. JZOJ. 5421【NOIP2017提高A组集训10.25】嘟嘟噜
  18. 大型网站系统与Java中间件实践
  19. Hadoop 实战之分析专利引用数据集(三)
  20. c语言主线程退出子线程,简单了解C语言中主线程退出对子线程的影响

热门文章

  1. gta5 android ps4,gta5导演模式怎么玩好玩_gta5怎么进入导演模式怎么玩ps4导演模式怎么打开_攻略...
  2. redis的主从同步及高可用集群
  3. 爬虫学习笔记(三)——利用JSON爬取豆瓣热映的使用
  4. AT24C256读取数据
  5. QCC3040---Glossary
  6. 灿谷集团荣获“公益践行奖”
  7. Oracle 数据块头部的Fuzzy标记
  8. gin embed打包静态资源文件
  9. 用Linux开发板制作智能音箱,【工程师实战】只要几步,普通音箱秒变小度智能音箱...
  10. MATLAB实现2ASK,2PSK,2FSK