mysql前几名怎么查询 mysql如何查询前10个数据

mysql版 查询各科成绩前三名的记录:(不考虑成绩并列情况)

上面那条答案应该是可以的啊,可能是看起来复杂了点吧,我自己试过是没问题的:

创新互联专注于东城网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供东城营销型网站建设,东城网站制作、东城网页设计、东城网站官网定制、小程序设计服务,打造东城网络公司原创品牌,更为您提供东城网站排名全网营销落地服务。

SELECT t1.sno,t1.cno,Score

FROM SC t1

WHERE EXISTS

(SELECT COUNT(1)

FROM SC

WHERE t1.cno= cno AND t1.scorescore

HAVING COUNT(1)3)

ORDER BY t1.cno,score DESC

另外还有一种类似的写法:

SELECT t1.sno,t1.cno,Score

FROM SC t1

WHERE

(SELECT COUNT(cno)

FROM SC

WHERE t1.cno= cno AND t1.scorescore)3

ORDER BY t1.cno,score DESC

用mysql查询出字段中的前几个字

用mysql查询出字段中的前几个字可以用left()方法,

如果要查一个字段的前50个字符,sql语句举例:

select left(table_column,50)  from   table_name;

left(table_column,50) 表示截取table_column左边的50个字符

扩展资料

sql中截取字符串的相关函数介绍:

1、left(name,4)截取左边的4个字符

列:SELECT LEFT(201809,4) 年

结果:2018

2、right(name,2)截取右边的2个字符

SELECT RIGHT(201809,2) 月份

结果:09

3、SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后的所有个字符

SELECT SUBSTRING('1234567',3)

结果:34567

4、SUBSTRING(name, -4) 截取name这个字段的第 4 个字符位置(倒数)开始取,直到结束

SELECT SUBSTRING('1234567',-4)

结果:4567

mysql查询每科成绩前两名

首先,select count(1)表示查询出表中符合条件的行数;

r2.cno=r1.cno and r2.score = r1.score表示查询条件;

select count(1) from sc r2 where r2.cno=r1.cno and r2.score = r1.score总体的意思就是从表r2中查询出满足r2.cno=r1.cno and r2.score = r1.score条件的行数;

结合完整的sql语句来看,这个查询出的行数要=2,所以"行数=2"是作为前一个查询语句的查询条件的。

这样这个语句简单点理解就是:从r1表查询sno,cno,score这三列,查询条件是"行数=2"。

说的比较复杂,不知道你懂了没

mysql 查询每门成绩的前十名

CREATE PROCEDURE GetScRank()

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前几名怎么查询 mysql如何查询前10个数据
网站URL:http://pwwzsj.com/article/hhpcph.html