MySql 中的非法混合排序规则错误

2021-11-20 00:00:00 mysql collation mysql-error-1267

刚刚从上一个问题中得到了这个答案,效果很好!

Just got this answer from a previous question and it works a treat!

SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount 
FROM ratings WHERE month='Aug' GROUP BY username HAVING TheCount > 4
ORDER BY TheAverage DESC, TheCount DESC

但是当我把这个额外的位插入它时会出现这个错误:

But when I stick this extra bit in it gives this error:

文档 #1267 - 非法混合校对(latin1_swedish_ci,IMPLICIT) 和(latin1_general_ci,IMPLICIT) 为操作'='

Documentation #1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_general_ci,IMPLICIT) for operation '='

SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount FROM 
ratings WHERE month='Aug' 
**AND username IN (SELECT username FROM users WHERE gender =1)**
GROUP BY username HAVING TheCount > 4 ORDER BY TheAverage DESC, TheCount DESC

表格是:

id、用户名、评级、月份

推荐答案

检查每个表的排序规则类型,并确保它们具有相同的排序规则.

Check the collation type of each table, and make sure that they have the same collation.

然后检查您在操作中使用的每个表字段的排序规则类型.

After that check also the collation type of each table field that you have use in operation.

我遇到了同样的错误,这个技巧对我有用.

I had encountered the same error, and that tricks works on me.

相关文章