首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL排序: latin1_swedish_ci Vs utf8_general_ci

问MySQL排序: latin1_swedish_ci Vs utf8_general_ci
EN

Stack Overflow用户
提问于 2011-01-22 17:53:35
回答 4查看 43.2K关注 0票数 19

在MySQL中创建表时,应该设置哪些排序规则:

  • latin1_swedish_ci或utf8_general_ci

什么是校对?

我一直在使用latin1_swedish_ci,它会引起什么问题吗?

EN

回答 4

Stack Overflow用户

发布于 2011-07-22 08:21:52

无论您做什么,都不要尝试在mysql中使用默认的swedish_ci排序规则(而不是拉丁文),否则会出现错误。排序规则必须与正确的字符集匹配才能工作。由于字符集和排序规则不匹配,此SQL将失败:

代码语言:javascript
复制
CREATE  TABLE IF NOT EXISTS `db`.`events_user_preference` (
  `user_id` INT(10) UNSIGNED NOT NULL ,
  `email` VARCHAR(40) NULL DEFAULT NULL ,
  PRIMARY KEY (`user_id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = latin1_swedish_ci

@Blaisor刀片指出,解决这个问题的方法是使用与瑞典排序规则相匹配的字符集:

代码语言:javascript
复制
DEFAULT CHARACTER SET = utf8_swedish_ci

用于Yii框架的cal (日历)模块的SQL与上面的错误代码类似。希望他们现在已经修好了。

票数 6
EN

Stack Overflow用户

发布于 2011-06-09 08:30:10

您可以在MySQL 5.5中阅读有关字符集和排序规则的内容:

字符集和排序规则

MySQL中的字符集和排序规则

为了支持世界上所有的书面语言,校对支持是必要的。例如,在我的语言(丹麦语)中,我们有一个特殊的字符‘。听起来像是瑞典语,德语,匈牙利语(等等)。丹麦语中的这一字也是从其中一种语言中输入的。由于校对的支持,我们既可以正确地打印,也可以排序相同(按.是一样的。如果没有校对支持,这是不可能的。

瑞典排序规则是拉丁字符集的MySQL默认设置。它适用于英语。英语是如此简单--它适用于所有的事物,因为它没有特殊的字符、重音等等。但是如果你有另一种你经常使用的语言(例如西班牙语),你可以将排序规则改为西班牙语,所以根据西班牙语规则对西班牙语字符串进行排序是正确的。

一个非常特别的例子是德国的校勘。它的创建是为了像德国电话簿那样进行分类。德语电话本不遵循德语的一般规则!

如果你愿意,你可以创建你自己的校对。排序规则可以编译或文本格式。

票数 4
EN

Stack Overflow用户

发布于 2015-01-03 17:40:27

在WebServer2.5中,您可以通过进入PHPAdmin,选择需要更改的数据库来更改排序规则。这将给你另一组标签。选择称为操作的选项卡。在该选项卡中将有名为“排序规则”的部分,请在下拉菜单中选择您想要的,然后选择go。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4769517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档