mysql 排序规则utf_8 和utf8_general_ci 格式之间有什么区别吗?
我得到了一张支持票,可以将我所有的 sql 表更新为 utf8_general_ci 格式而不是 utf_8 。
工单的主题是
"To allow a better interoperability and exchange of information between systems across the world. Although this doesn't necessarily impact your performance or security we advise you setting your database tables to the "utf8_general_ci"
请帮帮我..
谢谢。
最佳答案
你似乎混淆了排序规则和字符集。
- 字符集定义了哪些字符是已知的。
- 排序规则定义字符集中的排序顺序。这对于比较是必要的。
你的字符集是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
指出我上面说的。
关于mysql - mysql collation utf_8和utf8_general_ci是否类似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017374/