-- 找出排名前5的数据 SELECT * FROM tbl ORDER BY num DESC LIMIT 5; -- 找出排名前10%的数据 SELECT * FROM tbl ORDER BY num DESC LIMIT ROUND((SELECT COUNT(*) FROM tbl)*0.1); -- 找出排名第二的数据 SELECT * FROM tbl ORDER BY num DESC LIMIT 1,1; -- 找出排名前5的数据,并只返回特定的列 SELECT col1, col2 FROM tbl ORDER BY num DESC LIMIT 5;
以上语句中,ORDER BY
用于指定排序方式,DESC
表示降序排列,LIMIT
用于限制返回结果的数量。
需要注意的是,在使用LIMIT
时,第一个参数表示从哪一行开始返回,而不是返回数目。
如果需要找出排名前百分之十的数据,可以使用嵌套查询和ROUND
函数来计算需要返回的行数。
-- 找出排名前10%的数据 SELECT * FROM tbl WHERE num >= ( SELECT ROUND(MAX(num)*0.1) FROM tbl ) ORDER BY num DESC;
这条语句会先计算出num列最大值的10%(MAX(num)*0.1
),然后将num列大于等于这个值的数据返回。
以上是一些常用的mysql语句,可以根据实际情况进行修改和调整。