zoukankan      html  css  js  c++  java
  • 解决MySQL联表时出现字符集不一样

    mysql 建表时都会设置表的字符集和排序规则,通常是 utf8,不过我这边习惯建表的字符集是 utf8mb4,排序规则是 utf8mb4_unicode_ci。有些 utf8mb4 的表默认排序规则是 utf8mb4_general_ci,导致在联表操作时会报错误:

    Illegal mix of collations

    其实这个就是联表时由于表的排序规则不一致才会引起的,这个可以通过将表的排序规则改成一致来解决。

    但是有时表已经在线上了,无法修改,而现在又要急着用,可以通过下面的方法:

    UPDATE target LEFT JOIN  source ON( target.artnr = source.artnr COLLATE latin1_swedish_ci ) SET target.barcode = source.barcode

    通过红色标注的方法来让查询时联表的排序规则一致。

    还有,设置字符集 utf8mb4 可以保存 emoji 表情。

  • 相关阅读:
    IDEA调试快捷键
    视频预览
    文件上传:简单的demo
    Java 运行时优化
    Java 类加载
    Java StringTable
    Java 为什么不用Vector
    C++ 查找函数
    JVM 垃圾回收
    JVM 直接内存
  • 原文地址:https://www.cnblogs.com/linguoguo/p/7612171.html
Copyright © 2011-2022 走看看