mysql排序查询

mysql排序查询,第1张

/*

语法:

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字段的升序方式进行排序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8727163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存