loading
Please wait while loading...
返回 用 varchar join table - Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMP

在 MySQL 我們要 join 兩個資料表時必須用一個 field 去做連結, 而一般來說這個 field 都是數字型態, 因此很少會出現問題。

可是今天我卻出現一個情況是需要用到一個 varchar 型態的 field 去做連結的, 照正式的方式寫後, 結果出現以下的錯誤訊息: "Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation", 原來在 MySQL 是不可以用 varchar 直接做這樣的比對的, 在 google 搜尋一翻後終於找到如下答案:

SELECT a.* FROM a INNER JOIN b ON CAST(a.field AS CHAR) = CAST(b.field AS CHAR)

Comments
comments powered by Disqus