其实解决是他得排序
先将两个数据表的编码统一,如果 t1 的编码为utf8_general_ci,那么将这个表的编码修改下执行以下语句
ALTER TABLE temp CONVERT TO CHARACTER SET utf8 collate utf8_unicode_ci
以上就解决了,,你show create table 两个表看如果一样了,就好了。
我还想说一点,
COLLATION 是用在排序,大小比较上。
一个字符集有一个或多种collation,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。
在做比较时,应该确保两个表的字符排序相同。
一般建表的时候不指定,可以走默认的,全是默认的就没什么问题了。
alter table t character set utf8;
这个也是修改字符集,但是你会发现,原来的字符集会变成列级的check.
所以以后真正改字符集的时候别忘了加上 CONVERT TO .
如果您想要把表默认的字符集和所有字符列(CHAR, VARCHAR, TEXT)改为新的字符集,应使用如下语句:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET 。。。
要仅仅改变一个表的默认字符集,应使用此语句:
ALTER TABLE tbl_name DEFAULT CHARACTER SET 。。。
转载:http://blog.sina.com.cn/s/blog_8317516b0100uaes.html
浙公网安备 33010602011771号