mysql - mysql collat​​ion utf_8和utf8_general_ci是否类似

标签 mysql utf-8 collation

mysql 排序规则utf_8utf8_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 collat​​ion utf_8和utf8_general_ci是否类似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017374/

相关文章:

mysql - 为什么 information_schema 和 Performance_schema 不是 utf8mb4 (我应该关心)?

mysql - SQL:空列计数不正确

mysql - 如何扫描MySQL中的多个项目?

python - 在 Python ftplib 中列出名称中包含 UTF-8 字符的文件

php - SELECT 语句不适用于 utf-8

php - 从十六进制代码创建 UTF-8 字符串

MYSQL 5.1.61 在 utf8 中对中欧语言进行排序

mysql - 相似字符的唯一约束违规

mysql - MySQL 游标错误

mysql(5.1)命令行界面和我的疯狂