不可重复的“非法混合排序”错误

时间:2010-02-03 21:11:40

标签: mysql ruby-on-rails collation

我正在查看我的Rails应用程序的错误日志,发现有人遇到了以下错误:

"Mysql::Error: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=': SELECT * FROM `tags` WHERE (name = LOWER('?')) LIMIT 1"

我理解这个错误的原因,但是我在尝试修复它时遇到了麻烦,因为我无法复制它。我的数据库连接使用utf8连接,tags表的排序规则为latin1_swedish_ci,但无论我尝试做什么,我都无法复制错误。

我应该更改tags以使用utf8_general_ci整理,并希望这可以解决问题吗?或者有没有人有其他想法?

1 个答案:

答案 0 :(得分:2)

上周我遇到了同样的问题。在我的情况下,我最终得到的一个字段在latin1_swedish_ci的表中列为UTF-8。如果您主要运行UTF-8数据库并且我们正在讨论字符串数据,那么我将继续进行更改整理并为您省去一些麻烦。现在你可能没有以错误的方式使用它,但如果你忘记并继续加入这些数据,那么你可能会在将来遇到麻烦。