mysql排序规则错误_MySQL中“非法混合排序规则”错误的疑难解答

将我的2c添加到未来谷歌员工的讨论中。

我正在研究一个类似的问题,在使用自定义时,我得到了以下错误功能接收一个varchar参数:Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='

使用以下查询:mysql> show variables like "collation_database";

+--------------------+-----------------+

| Variable_name      | Value           |

+--------------------+-----------------+

| collation_database | utf8_general_ci |

+--------------------+-----------------+

我能看出DB正在使用乌特夫8-总则,而表则使用UTF 8_Unicode_ci:mysql> show table status;

+--------------+-----------------+

| Name         | Collation       |

+--------------+-----------------+

| my_view      | NULL            |

| my_table     | utf8_unicode_ci |

...

请注意,视图具有零校对。尽管此查询对一个视图显示为NULL,但视图和函数似乎具有排序规则定义。使用的排序规则是在创建视图/函数时定义的DB排序规则。

可悲的解决方案是,既更改db排序规则,又重新创建视图/函数,以强制它们使用当前排序规则。更改数据库的排序规则:ALTER DATABASE mydb DEFAULT COLLATE utf8_unicode_ci;

我希望这能帮到别人。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值