MySQL - 整理

时间:2012-04-05 15:25:19

标签: mysql database

当我创建数据库时,我要求选择Default Collat​​e,当我创建一个表时,我要求选择Collat​​e。 utf8_general_ci或...拉丁...?区分哪一个是正确的基础是什么?

1 个答案:

答案 0 :(得分:12)

collation确定字符的排序顺序,它是一组用于比较字符集中字符的规则。任何给定的character set总是至少有一个排序规则。归类名称 ci cs bin 的结尾表示不区分大小写区分大小写< / strong>和二进制。像utf8_bin这样的二进制排序规则通常也区分大小写,因为它根据字符串的数值进行二进制字符串比较。

这意味着如果您想要使用不区分大小写的选择查询,其中a和A没有区别,则应使用以ci结尾的排序规则。如果要创建区分大小写的查询,其中a和A不同,则应使用以cs或bin结尾的排序规则。

如果未选择,则应用标准级别。 MySQL中有各种级别的排序规则,例如可以通过

显示
mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+