MySQL 中ORDER BY排序规则
在 MySQL 中,ORDER BY 的排序规则(collation)决定了数据如何进行排序。排序规则主要影响字符串类型字段的排序方式,具体如下:
- 数值类型(如 INT、FLOAT):按数值大小排序。
- 日期类型(如 DATE、DATETIME):按时间先后排序。
- 字符串类型(如 VARCHAR、CHAR、TEXT):排序规则由字段的字符集(charset)和排序规则(collation)决定。
常见字符串排序规则:
- 默认排序规则通常是
utf8mb4_general_ci
或utf8mb4_unicode_ci
,其中ci
表示不区分大小写(case-insensitive)。 - 可以通过
ORDER BY 字段 COLLATE 排序规则
显式指定排序规则,例如:SELECT name FROM users ORDER BY name COLLATE utf8mb4_bin;
总结:
ORDER BY 的排序规则取决于字段的字符集和排序规则,也可以在 SQL 语句中显式指定。对于字符串,默认通常是不区分大小写的字典序。