18
votes

I checked the database table and found it was in latin1_swedish_ci so i've changed it to utf8_general_ci then I changed the collation from latin1_swedish_ci to utf8_general_ci for all the fields.

Still it's giving me the same error.

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

Thanks,

2
check again..there is somewhere you might missed to change it to utf8_general_ci ..MKJParekh
Thanks, found one field in utf8_unicode_ci and converted it into the utf8_general_ci and its working fine now...Nikhil
I knew that..you must be missing one field..anyways..congo..cheersMKJParekh
You should post your solution as an answer below.deadly

2 Answers

32
votes

so the answer is simple. It seems you missed the change as stated by MKJ ^^ but the actual syntax to alter your tables looks like this.

alter table `dbname`.`tablename` convert to character set utf8 collate utf8_general_ci;

Applied as an individual script or at the end of your create table statement you should be able to relate all related tables back to the same charset

3
votes
COLLATE utf8_unicode_ci

add to the query end, like this;

SELECT * FROM table COLLATE utf8_unicode_ci;