建表时,MySQL按照下面的方式选择表字符集和校对规则:
如果指定了CHARACTER SET X和COLLATE Y,那么采用CHARACTER SET X和COLLATE Y。
如果指定了CHARACTER SET X而没有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默认校对规则。
- 如果建表时不小心搞错了表字符和校对规则,并且表中已经存在数据,使用以下命令调整字符集与规则:
alter table table_name convert to character set 'utf8' collate 'utf8_unicode_ci';
- 如果表中不存在数据,可以使用以下命令来调整:
alter table table_name character set 'utf8' collate 'utf8_unicode_ci';
但是要注意,如果表中已有数据,第二种方式无法调整已有数据的格式,一定要用第一种方式。