MySql查詢報錯:Illegal mix of collations

今天用MySQL做了一個很簡單類似於 UserName='張三'的查詢,居然報錯了:

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

從錯誤描述來看應該是字符集的問題,我的問題倒是比較簡單,純粹是因爲服務器端使用的編碼是utf8,我在連接時使用了utf8mb4,改了一下連接就好了,不過這個問題也是頭一次遇見,這個問題通常是因爲比較了兩個不同字符集的字符串或者對不同字符集的字符串組合引起的的。
網上關於這塊錯誤的描述蠻多,大部分都是直接庫或者改表的字符集,此類操作一定要慎重,尤其在操作生產環境時,碰到字符集問題時,一般可以從連接、服務器端、數據庫、數據表各個層次去檢查,確認是否一致,字符集的查看,像MySQL-Font、Navicat等客戶端工具都可以很方便的查看,也可以使用命令show variables like "collation_database";或者show table status;查看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章