mysql排序规则 utf_8 和 utf8_general_ci 格式之间是否存在任何差异。
我得到了一张支持票,将我所有的sql表更新为 utf8_general_ci 格式,而不是 utf_8 。
故障单的主题是
“允许更好的互操作性和信息交换 世界各地的系统之间。虽然这不一定 影响您的表现或安全,我们建议您设置您的 数据库表到“utf8_general_ci”
请帮帮我..
感谢。
答案 0 :(得分:2)
您似乎混淆了排序规则和字符集。
你的字符集是utf8,你的校对是utf8_general_ci。
所以,实际上你必须什么也不做。
create table colly(a varchar(2) collate utf8_general_ci);
select * from information_schema.columns where table_schema = 'playground'
and table_name = 'colly'\G
*************************** 1. row ***************************
TABLE_CATALOG: NULL
TABLE_SCHEMA: playground
TABLE_NAME: colly
COLUMN_NAME: a
ORDINAL_POSITION: 1
COLUMN_DEFAULT: NULL
IS_NULLABLE: YES
DATA_TYPE: varchar
CHARACTER_MAXIMUM_LENGTH: 2
CHARACTER_OCTET_LENGTH: 6
NUMERIC_PRECISION: NULL
NUMERIC_SCALE: NULL
CHARACTER_SET_NAME: utf8
COLLATION_NAME: utf8_general_ci
COLUMN_TYPE: varchar(2)
COLUMN_KEY:
EXTRA:
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
1 row in set (0.00 sec)
不知道你对你的评论意味着什么,但这里有两行
CHARACTER_SET_NAME: utf8
COLLATION_NAME: utf8_general_ci
表明我上面所说的内容。
答案 1 :(得分:0)
utf8是字符集,utf8_general_ci是整理顺序(如何比较字符)这是一个很好的解释这个问题的帖子。