Sunday, June 24, 2018

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)

  • error ตอนเราจะ query inner join หลายๆ ตาราง
  • ประมาณว่า collations ของตารางไม่เหมือนกันจะเอามาเปรียบเทียบกันไม่ได้ error ด้วยนะ
Solved
  • เติม collation ตามหลัง column ที่จะทำการเปรียบเทียบ ให้ข้างใดข้างหนึ่งให้เหมือนกับอีกของอันหนึ่ง
SELECT c1, c2 FROM  t1 as a left join t2 as b on a.c1 = (b.c1 collate utf8_general_ci )
Ref
  • https://stackoverflow.com/questions/45621178/illegal-mix-of-collations-utf8-unicode-ci-implicit-and-utf8-general-ci-implic?rq=1
  • https://dev.mysql.com/doc/refman/8.0/en/charset-collate.html

No comments:

Post a Comment