Mysql排序规则utf_8和utf8_general_ci是否类似

时间:2014-01-09 10:18:25

标签: mysql utf-8 collation

mysql排序规则 utf_8 utf8_general_ci 格式之间是否存在任何差异。

我得到了一张支持票,将我所有的sql表更新为 utf8_general_ci 格式,而不是 utf_8

故障单的主题

  

“允许更好的互操作性和信息交换   世界各地的系统之间。虽然这不一定   影响您的表现或安全,我们建议您设置您的   数据库表到“utf8_general_ci”

请帮帮我..

感谢。

2 个答案:

答案 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是整理顺序(如何比较字符)这是一个很好的解释这个问题的帖子。

utf8 and utf8_general_ci