资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

mysql怎么排序前十,mysql查询前10条记录并排序

mysql 查询每门成绩的前十名

CREATE PROCEDURE GetScRank()

我们提供的服务有:成都网站设计、网站制作、微信公众号开发、网站优化、网站认证、栖霞ssl等。为上1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的栖霞网站制作公司

BEGIN

DECLARE SigDone INT DEFAULT 0;

DECLARE Cno_ BIGINT;

DECLARE Cur1 CURSOR FOR SELECT DISTINCT Cno FROM Score;

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET SigDone = 1;

OPEN Cur1;

TRUNCATE scResult;

FETCH Cur1 INTO Cno_;

WHILE NOT SigDone DO

INSERT INTO scResult (Sno,Cno,Sc) (SELECT DISTINCT Sno,Cno,Sc FROM Score WHERE Cno =Cno_ ORDER BY Sc DESC LIMIT 10);

COMMIT;

FETCH Cur1 INTO Cno_;

END WHILE;

CLOSE Cur1;

END

用游标效率应该还行吧.

Mysql数据查询in的时候如何排序

前几天工作上遇到一个问题,在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排行榜取top10

因为mysql里没有top方法,使用top会报语法的错误,

mysql提供了limit方法,可以达到同样的效果。

select?*?from?table?order?by?id?desc?limit?10;

如何使用mysql选取前10条记录后,然后对记录进行排序

select * from (select * from TABLE limit 10) aa 

order by name;

其实,一般来说,最好还是先排序,再进行行数限制。

mysql排序

由于mysql没有row_number()方法,只能通过其它方法来进行排序,以下为使用变量来实现排序

示例1:以col1分组,col2正序排序

示例2:以col1分组,col2倒序排序

关于mysql排序

在执行查询结果时,默认情况下查询结果无序排列。但我们有时需要对数据按一定规则进行排序。这时可以通过ORDER BY子句来实现这个功能。语法如下:

SELECT *,column [alias],... FROM table

[WHERE condition(s)]

[ORDER BY column[ASC|DESC]];

默认是ASC指定的升序排列,DESC用来指定降序排列。

1、升序排序:

使用ORDER BY子句时,默认情况下数据是按升序排列的,故可以用ASC关键字指点升序排列,或者不指定,默认就是升序,显示效果是一样的,如下图:

2、降序排序:

当需要查询结果降序排列时,必须在排序后指定DESC关键字。如下图是查看职员薪水的降序排列:


网页题目:mysql怎么排序前十,mysql查询前10条记录并排序
本文路径:http://cdkjz.cn/article/dsihgog.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220