生产服务器的MySql默认是utf8_general_ci字符集,但是有部分表格的字段是utf8_unicode_ci字符集。
按此前的处理方法,转换下其中一个的字符集即可,参考语句:
ALTER TABLE tablename
CHANGE COLUMN colname
VARCHAR(45) CHARACTER SET ‘utf8’ COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT ‘备注colname
但是这次的2个表 都已经有其他业务逻辑在使用,贸然调整的话 会引发其他业务的异常,于是用上了sql语句中的字符集转换方法 这样对原始存储不做改变 不影响既有业务:
select * from table1 where table1.userid = CONVERT (table2.openid USING utf8) COLLATE utf8_general_ci
最好的当然是在业务规划设计时就明确确定好使用utf8_unicode_ci。
Tags: SQL
发表评论