MySQL排序
概述
ORDER BY子句按一个或多个列对结果集进行排序。它可以按升序(ASC)或降序(DESC)排序。默认情况下,结果按升序排序。
ORDER BY语法
sql
基本排序
升序排序
sql
-- Default is ASC
-- Sort by name alphabetically降序排序
sql
-- Use DESC for descending
-- Newest first多列排序
sql
-- Sort by multiple columns
-- Different directions
-- Three columns按位置排序
sql
-- Sort by column position in SELECT
-- Multiple positions使用表达式排序
字符串表达式
sql
-- Sort by string length
-- Sort by part of string
-- Case-insensitive sort数值表达式
sql
-- Sort by calculation
-- Sort by absolute valueTime Expressions / 日期时间表达式
sql
-- Sort by date part
-- Sort by time only
-- Sort by relative dateNULL值排序
NULL位置
sql
-- NULLs first (default ASC)
-- NULLs last
-- In MySQL (NULLs are lowest by default)使用COALESCE处理NULL
sql
-- Treat NULL as specific value
-- Multiple NULL columns带LIMIT的ORDER BY
Top N结果
sql
-- Get top 10 most expensive products
-- Get newest 5 users
-- Get oldest 10 orders分页
sql
-- Page 1 (records 1-10)
-- Page 2 (records 11-20)
-- Page 3 (records 21-30)随机排序
sql
-- Random selection
-- Random product
-- Shuffle results不同上下文中的ORDER BY
带JOIN
sql
-- Sort joined results
-- Sort by aggregate带GROUP BY
sql
-- Sort grouped results
-- Sort by aggregate带子查询
sql
-- Sort subquery results
-- UNION with ORDER BY排序规则和排序
字符集
sql
-- Different collation不区分大小写的排序
sql
-- Default is case-insensitive for utf8mb4
-- Case-sensitive sort性能考虑
索引使用
sql
-- Index helps for sorted columns
-- Composite index for multiple columns索引无效的情况
sql
-- Expression on column
-- Function on column
-- Mixed directions实用示例
电商排序
sql
-- Sort by price: low to high
-- Sort by price: high to low
-- Sort by rating
-- Sort by newest用户管理
sql
-- Recently active users
-- Users by registration date
-- Alphabetical by last name报表排序
sql
-- Sales by amount
-- Top customers小结
ORDER BY子句提供:
排序:ASC(默认)、DESC 多列:按多列排序 表达式:按计算值排序 last / NULL处理:NULL在前/后 LIMIT:Top N结果 性能:使用索引进行排序
上一个:UNION
下一个:GROUP BY