📜  mysql 按条件排序 - SQL (1)

📅  最后修改于: 2023-12-03 15:03:06.513000             🧑  作者: Mango

MySQL 按条件排序 - SQL

在 MySQL 中,可以使用 ORDER BY 子句对查询结果进行排序。ORDER BY 子句可以按一个或多个列进行排序,并且可以指定每个列应升序或降序排序。

按单个列排序

对于只需要按单个列进行排序的情况,可以使用以下语法:

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name [ASC | DESC];

例如,以下语句按 age 列从小到大排序:

SELECT name, age, salary
FROM employee
ORDER BY age;

如果要按相反的顺序排序,只需要添加 DESC 关键字:

SELECT name, age, salary
FROM employee
ORDER BY age DESC;
按多个列排序

如果需要按多个列进行排序,可以在 ORDER BY 子句中指定多个列。例如,以下语法按 age 列和 salary 列依次排序:

SELECT name, age, salary
FROM employee
ORDER BY age, salary;

ORDER BY 子句按照列名的顺序进行排序。在上面的例子中,首先按 age 列进行排序,如果出现相同的 age 值,则按 salary 列排序。

也可以为每个列指定排序顺序,例如,以下语法按 age 列升序排序,然后按 salary 列降序排序:

SELECT name, age, salary
FROM employee
ORDER BY age ASC, salary DESC;
按表达式排序

如果需要按计算出来的值进行排序,可以在 ORDER BY 子句中指定表达式。例如,以下语法按 agesalary 的乘积进行排序:

SELECT name, age, salary
FROM employee
ORDER BY age * salary;

注意,在这种情况下,不能使用列别名,必须使用表达式本身。

结论

ORDER BY 子句是 MySQL 查询中非常重要的一部分。使用 ORDER BY 子句可以按一个或多个列对查询结果进行排序,也可以按计算出来的值排序。在使用 ORDER BY 子句时,应该指定正确的排序顺序,避免出现歧义和错误的结果。