首页 > 解决方案 > 排序规则的非法混合 - MySQL 假表

问题描述

我通过以下方式创建了一个假表:

SELECT 'B' a_name UNION ALL  
SELECT 'A' a_name

并尝试加入不同的表,但我看到了错误:

排序规则(latin1_swedish_ci 隐式)和(utf8_general_ci coercible)的非法混合

我不是管理员,所以我无法更新表格排序规则,

这个问题有什么解决方法吗?

标签: mysqlsql

解决方案


似乎您的另一个(实际)表正在使用utf8_general_ci; 当您的数据库连接/服务器配置设置为latin1_swedish_ci. 它也可以是其他方式。

不过,我们可以使用CONVERT()函数,将“假表”更改为使用utf8(如果另一个(实际)表正在使用utf8)。

SELECT CONVERT('B' USING utf8) AS a_name UNION ALL  
SELECT CONVERT('A' USING utf8) AS a_name

推荐阅读