我從我的本地機器進口MySQL的數據通過phpmyadmin到網絡服務器和運行我的腳本,我收到此錯誤爲什麼我得到這個錯誤?
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
這是爲什麼?我該如何解決這個問題?
我從我的本地機器進口MySQL的數據通過phpmyadmin到網絡服務器和運行我的腳本,我收到此錯誤爲什麼我得到這個錯誤?
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
這是爲什麼?我該如何解決這個問題?
問題是因爲您的連接與正在比較的列的排序規則對比。你有三個真正的選擇。將您的比較轉換爲適當的排序規則,更改列的排序規則或更改連接的排序規則。
要投:
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
等,如果你想更明確的信息,表明你的查詢和你的表格定義。
您不能使用兩種不同的字符編碼比較兩個字符串。他們需要具有相同的字符編碼。這基本上是由排序規則處理的 - 它需要對兩個列進行比較。
您可以從phpMyAdmin或任何其他數據庫版本軟件(如MySQL Workbench)更改排序規則。確保所有表使用相同的排序規則。
我該怎麼做從Phpmyadmin – 2011-02-03 17:57:34
是啊謝謝我得到它 – 2011-02-03 17:58:28