[MySQL]:什么是排序方法?
当我使用phpMyAdmin查看在线表格时,它使用排序方法“latin_swedish_ce”。为什么?默认值是什么?那么,使用什么样的排序方法呢?你的意思是[MySQL]:什么是排序方法?,mysql,Mysql,当我使用phpMyAdmin查看在线表格时,它使用排序方法“latin_swedish_ce”。为什么?默认值是什么?那么,使用什么样的排序方法呢?你的意思是latin1\u swedish\u ci?这是mySql的默认排序规则 它在执行排序/比较时使用 要更改它,请参考以下内容: 字符集是一组符号 和编码。排序规则是一组 用于比较文本中字符的规则 字符集 您可以在中找到更多信息。在比较字符串时使用排序规则,例如对字符串进行排序。例如,在瑞典语中,字母“Ä”在“Z”之后,但在德语中,它被视为
latin1\u swedish\u ci
?这是mySql的默认排序规则
它在执行排序/比较时使用
要更改它,请参考以下内容:
字符集是一组符号
和编码。排序规则是一组
用于比较文本中字符的规则
字符集
您可以在中找到更多信息。在比较字符串时使用排序规则,例如对字符串进行排序。例如,在瑞典语中,字母“Ä”在“Z”之后,但在德语中,它被视为“AE”。因此,根据排序规则,字符串的排序方式不同 由于MySQL来自瑞典,所以默认为瑞典语。MySQL中的字符串具有。Utf8是一个字符集,Utf8_bin是它的排序规则之一。排序规则决定MySQL如何比较字符串 例如,这里有两种比较UTF8字符串的方法:
select case when 'test' = 'TEST' collate utf8_bin
then 'true' else 'false' end,
case when 'test' = 'TEST' collate utf8_roman_ci
then 'true' else 'false' end
第一个使用utf8_bin排序规则,它区分大小写。第二个使用utf8_roman_ci,它不区分大小写
所有字符集和排序规则的列表可以通过以下内容找到:
show character set
show collation
latin1\u swedish\u ci
是默认的排序规则(MySQL最初是在瑞典开发的),MariaDB也是如此
为什么??默认值是什么
latin1_swedish_ci
是默认值,因为MySQL AB公司来自瑞典
通常,对于使用ISO-8859-1(西欧)字符集的任何不太复杂的应用程序,此排序规则被认为是合理的默认设置。在比较中,它使大多数变调变得无关紧要:
'A'='Ã' -- 1
尽管如此,它确实有一些瑞典特有的怪癖:ö
,ø
,å
,æ
被认为是单独的字母(而ä
被认为与æ
相同)y
被视为与u
相同的字母。它还有一些与其说是瑞典语,不如说是错误的功能:
'['='å' -- 1, huh?
'd'='ð' -- 1, tsk. eth is nothing to do with d
有关更多信息,请参阅
如果您希望字母匹配,而不考虑变音符号,latin1\u german\u ci
是一种更好的排序方法<代码>拉丁1\u通用\u ci是一个更好的排序规则,如果您不这样做的话。如果您根本不关心大小写不敏感的匹配,并且希望每个字符都是唯一的,请选择latin1\u general\u cs
当然,现在人们希望你使用的是一种
utf8\uu
排序规则,而不是基于latin1
@David:你在我之前发布了参考手册URL:)+1