您的位置:首页 > 数据库 > MySQL

如何解决Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (gbk_chinese_ci,IMPLICIT)的问题

2015-10-28 14:41 651 查看
在执行以下SQL语句时

sql = "select reject_id, rejectdate,rejectreason, receivedocdate, receivedoctime from rejectprj where fhbh=(selectfhbh from reviewprj where id=?) order by reject_id desc " ;

出现以下错误:

Illegal mix of collations(latin1_swedish_ci,IMPLICIT) and (gbk_chinese_ci,IMPLICIT) for operation '='错误

 

进入MySQL,分别查看rejectprj和reviewprj两个表的结构,通过show full columns from <table>,查看其Collation,如下图



其中reviewprj的fhbh为gbk_chinese_ci,而rejectprj的fhbh为latin1_swedish_ci,所以当两表通过fhbh关联时,就会出现以上错误。

 

则通过以下命令将rejectprj的fhbh的Collation更改为gbk_chinese_ci。

 

mysql>alter table rejectprj changecolumn fhbh fhbh varchar(20) character set 'gbk_chinese_ci';

 

这样修改后,执行以上SQL命令不会出错了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL character_set