mysql
  • ruby-on-rails
  • collation
  • 2010-02-03 49 views 1 likes 
    1

    我會通過我的Rails應用程序的錯誤日誌,發現有人碰到下面的錯誤「排序規則的非法組合」:Unduplicatable錯誤

    "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排序規則,並希望這可以解決問題嗎?還是有人有任何其他想法?

    回答

    2

    上週我遇到了同樣的問題。在我的情況下,結果是我有一個字段在latin1_swedish_ci列表中,其他字段爲UTF-8。如果您主要運行UTF-8數據庫,並且我們正在討論字符串數據,那麼我會繼續前進並更改排序規則併爲自己節省一些麻煩。現在你可能不會以某種錯誤的方式使用它,但是如果你忘記並且加入了這些數據,那麼你將來可能會遇到麻煩。

    相關問題