/*
语法:
select 查询列表
from 表名
【where 筛选条件】
order by 排序的字段或表达式
特点:
1、asc代表的是升序,可以省略
desc代表的是降序
2、order by子句可以支持 单个字段、别名、表达式、函数、多个字段
3、order by子句在查询语句的最后面,除了limit子句
*/
SELECT * FROM employees ORDER BY salary DESC
SELECT *
FROM employees
WHERE department_id>=90
ORDER BY employee_id DESC
SELECT ,salary 12 (1+IFNULL(commission_pct,0))
FROM employees
ORDER BY salary 12*(1+IFNULL(commission_pct,0)) DESC
SELECT ,salary 12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY 年薪 ASC
SELECT LENGTH(last_name),last_name
FROM employees
ORDER BY LENGTH(last_name) DESC
SELECT *
FROM employees
ORDER BY salary DESC,employee_id ASC
前几天工作上遇到一个问题,在mysql数据查询的时候,使用的是in条件,而结果需要根据in来进行排序,当时尝试了几次都没成功,后来在度娘的帮助下,找到了解决办法: select * from table_name where id in (6,2,1,10,5,7..) 查询的结果和in中的顺序并不一致,也就是说在批量查询时,mysql的查询并不是按照in中的值得顺序来查询的。那怎么才能保证和in查询中的顺序相同呢? 查询了资料发现有两种方式可以对in查询的结果进行排序。一种是order by find_in_set,另外一种是order by substring_index 1、select * from table_name where id in (6,2,1,10,5,7..) order by find_in_set(id,'6,2,1,10,5,7') 2、select * from table_name where id in (6,2,1,10,5,7..) order by substring_index('6,2,1,10,5,7',id,1)在MySQL中,可以指定按照多个字段进行排序。例如,可以使employee表按照d_id字段和age字段进行排序。排序过程中,先按照d_id字段进行排序,遇到d_id字段的值相等的情况时,再把d_id值相等的记录按照age字段进行排序。查询employee表中的所有记录,按照d_id字段的降序方式和age字段的升序方式进行排序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)