【发布时间】:2013-12-15 03:31:34
【问题描述】:
我一直在使用找到 here 的世界数据库 (InnoDB),以更深入地了解 MySQL。
我输入了以下基本查询:
SELECT COUNT(Name), MIN(Name), MAX(Name)
FROM Country
GROUP BY Continent
似乎 MIN() 和 MAX() 处理 Name 中的 CHAR 字符串的方式是按字母顺序排列的,其中 A 是最小值,Z 是最大值,依此类推。
谁能解释幕后发生的事情以及为它们分配了哪些值字符串以便以这种方式排序?同时包含字母字符和整数的字符串或特殊字符会发生什么情况?
非常感谢您的洞察力。
【问题讨论】:
-
它使用的是字典顺序
-
你有什么不清楚的地方? B-Tree 索引是如何工作的? (当然,如果它是创建的)- 或者 MySQL 将如何比较字符串?
-
@AlmaDo MySQL 如何比较字符串,基本上。例如,我想知道给 A 分配一个比 B 小的值是怎么回事,以及特殊字符和数字在那个范围内的位置。
-
@KarolyHorvath 谢谢,我正在调查
-
阅读文档中的字符集和排序规则 - 这是一个链接:dev.mysql.com/doc/refman/5.6/en/globalization.html 通常排序规则是一组用于比较字符集中字符的规则,这些规则定义了
Aq >w
标签: mysql