2011-02-03 244 views
0

我從我的本地機器進口MySQL的數據通過phpmyadmin到網絡服務器和運行我的腳本,我收到此錯誤爲什麼我得到這個錯誤?

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

這是爲什麼?我該如何解決這個問題?

回答

1

問題是因爲您的連接與正在比較的列的排序規則對比。你有三個真正的選擇。將您的比較轉換爲適當的排序規則,更改列的排序規則或更改連接的排序規則。

要投:

WHERE fooColumn = CAST('test' AS CHAR CHARACTER SET utf8) COLLATE utf8_general_ci 

更改列排序規則:

ALTER TABLE fooTable 
    MODIFY follColumn VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci; 

要更改連接校對:

SET NAMES utf8 COLLATE utf8_general_ci 

等,如果你想更明確的信息,表明你的查詢和你的表格定義。

0

您不能使用兩種不同的字符編碼比較兩個字符串。他們需要具有相同的字符編碼。這基本上是由排序規則處理的 - 它需要對兩個列進行比較。

您可以從phpMyAdmin或任何其他數據庫版本軟件(如MySQL Workbench)更改排序規則。確保所有表使用相同的排序規則。

+0

我該怎麼做從Phpmyadmin – 2011-02-03 17:57:34

+0

是啊謝謝我得到它 – 2011-02-03 17:58:28

相關問題