我一直在使用世界数据库(InnoDB)找到here来深入了解MySQL。
我输入了以下基本查询:
SELECT COUNT(Name), MIN(Name), MAX(Name)
FROM Country
GROUP BY Continent
似乎MIN()和MAX()对Name中CHAR字符串的处理方式是按字母顺序排列,其中A是最小值,Z是最大值,等等。
任何人都可以解释幕后发生的事情以及为这些字符串分配的字符串值是以这种方式排序的吗?字母字符和整数字符串或特殊字符会发生什么?
非常感谢。
答案 0 :(得分:2)
MySQL字符串比较,技术上称为 collation ,取决于语言环境。我建议一般阅读关于整理的10.1.1部分,关于MySQL整理的10.1.2和关于整理问题的10.1.7。在http://collation-charts.org/,您可以找到有关各个排序规则的详细信息,例如名为latin1_general_ci
的那个(_ci
表示不区分大小写)。调用MAX
和MIN
时使用的排序规则应该是相关列的排序规则,除非您使用MAX(Name COLLATE latin1_german2_ci)
这样的公式指定其他排序规则。