2009-06-15 68 views
11

我需要你在確定幫助爲什麼這個錯誤是未來MySQL的非法混合「=」

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=' 

的過程,直到昨天工作的罰款和今天它開始給出錯誤 非法組合的排序規則。我檢查了數據庫的每個表,所有表和它的列都在一個字符集和歸類中: - utf8 utf8_unicode_ci。

我創建了另一個架構具有相同的結構,並試圖執行相同的查詢,它工作正常,但沒有在其原始架構。

任何人都可以提供任何輸入?爲什麼會這樣呢?

+1

的實際查詢和錯誤消息,將是有益的。 – VolkerK 2009-06-15 14:29:31

回答

9

我有同樣的問題,我發現表具有相同的排序規則,但列沒有。 您可以下載mysqlyog試用版,並在alter table中取消隱藏語言選項.... 最快捷的方式來查看。

+0

我也有@Radmilo這個問題,如果我能夠通過你的快速解答來解決這個問題,我必須非常感謝你! – swdev 2011-10-31 17:33:03

4
在我的情況

這是由於愚蠢的MySQL工作臺 - 它在某種程度上增加了程序的默認排序規則從架構(一些元數據或者是什麼),然後如果你在整理過程,不同的排序規則什麼,這發生異常;

必須設置正確(這是在過程中使用的一個)的排序規則架構,然後重新編輯的程序和應用更改(必須重新保存或重建)和現在一切OK

2

的每個參數concat函數需要轉換。

CONCAT(CONVERT(field_A USING utf32), CONVERT(field_B USING utf32)) 

或者哪個功能可以解決您的問題。

0

我的問題是一樣的,但對我來說足夠用轉換使用SQL語句之前 - 在PHP

iconv(...) 
相關問題