mysql按指定条件排序

sql · 2024-05-06 16:36:59


在 MySQL 中,您可以使用 ORDER BY 子句对查询结果按指定条件排序。 ORDER BY 子句放置在 SELECT 语句之后,FROM 语句之前。
语法
sql
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) [ASC|DESC];
参数
column_name(s):要排序的列名。
ASC:按升序排序(从最小到最大)。
DESC:按降序排序(从最大到最小)。
示例
按单列排序
按 name 列升序排序:
sql
SELECT name
FROM users
ORDER BY name ASC;
按 age 列降序排序:
sql
SELECT age
FROM users
ORDER BY age DESC;
按多列排序
您可以按多列排序,指定每个列的排序顺序。
按 name 列升序排序,然后按 age 列降序排序:
sql
SELECT name, age
FROM users
ORDER BY name ASC, age DESC;
NULL 值的排序
默认情况下,NULL 值按以下顺序排序:
按升序排序时:排在所有非 NULL 值之后
按降序排序时:排在所有非 NULL 值之前
您可以使用 COALESCE() 函数或 ISNULL() 函数来更改 NULL 值的排序顺序。
COALESCE() 函数
COALESCE() 函数返回第一个非 NULL 参数。
按 name 列升序排序,将所有 NULL 值排在所有非 NULL 值之前:
sql
SELECT COALESCE(name, '') AS name
FROM users
ORDER BY name ASC;
ISNULL() 函数
ISNULL() 函数返回一个布尔值,指示值是否为 NULL。
按 name 列升序排序,将所有 NULL 值排在所有非 NULL 值之后:
sql
SELECT name
FROM users
ORDER BY ISNULL(name) ASC, name ASC;
性能提示
在索引的列上排序可以显著提高性能。 如果可能,请在用于排序的列上创建索引。

文章推荐:

mysql按照数字大小排序

mysql里面如何排序

mysql排序查询指定范围

mysql根据两个条件排序

mysql如何按in的顺序排序

mysql按指定顺序排序

mysql怎么设置排序