当我使用phpMyAdmin查看我的在线表时,它使用的排序方法是“latin_swedish_ce”。为什么?默认是什么?另外,用于哪种排序方法?
当我使用phpMyAdmin查看我的在线表时,它使用的排序方法是“latin_swedish_ce”。为什么?默认是什么?另外,用于哪种排序方法?
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
show character set
show collation
latin1_swedish_ci
是默认的排序规则(MySQL 最初是在瑞典开发的),这也适用于 MariaDB。
比较字符串时要使用排序规则(collation),例如,瑞典语中字母 "Ä" 排在 "Z" 之后,但在德语中会像 "AE" 一样处理。因此,根据不同的排序规则,字符串的顺序也不同。
由于 MySQL 来自瑞典,所以默认排序规则是瑞典语。
latin1_swedish_ci
是默认值,因为MySQL AB公司来自瑞典。'A'='Ã' -- 1
然而,需要指出的是,它有一些针对瑞典语的怪癖: ö
、ø
、å
、æ
被认为是不同的字母(而 ä
被认为与 æ
相同);y
被认为与 ü
是相同的字母。它还有一些特性,不仅仅是针对瑞典语,而是错误的:
'['='å' -- 1, huh?
'd'='ð' -- 1, tsk. eth is nothing to do with d
查看详细信息。
如果您想要字母匹配而不考虑变音符号,则latin1_german_ci
是更好的排序规则。latin1_general_ci
是更好的排序规则,如果您不需要。如果您完全不关心大小写不敏感的匹配,并且希望每个字符都是唯一的,请选择latin1_general_cs
。
当然,现在希望您使用基于utf8_
的排序规则,而不是任何基于latin1
的排序规则。
你是指 latin1_swedish_ci
吗?这是mySql的默认排序规则。
在进行排序/比较时会使用它。
要更改它,这里是参考: