选择MySQL中的前十行
我的表格gainfinal由countrycode、year和values三列组成。我要选择具有前十个值的十行。首先,我使用以下查询根据值创建了一个排名选择MySQL中的前十行,mysql,sql,Mysql,Sql,我的表格gainfinal由countrycode、year和values三列组成。我要选择具有前十个值的十行。首先,我使用以下查询根据值创建了一个排名 SELECT countrycode, `values`, @curRank := @curRank + 1 AS rank FROM gainfinal CROSS JOIN (SELECT @curRank := 0) vars WHERE year = 2000 ORDER By `valu
SELECT countrycode, `values`,
@curRank := @curRank + 1 AS rank
FROM gainfinal CROSS JOIN
(SELECT @curRank := 0) vars
WHERE year = 2000
ORDER By `values` DESC ;
现在,我需要选择排名最高的前十行。我怎么做 您可以使用:Limit从第20行开始获得10行
SELECT countrycode, `values`,
@curRank := @curRank + 1 AS rank
FROM gainfinal CROSS JOIN
(SELECT @curRank := 0) vars
WHERE year = 2000
ORDER By `values` DESC ;
SELECT countrycode, `values`,
@curRank := @curRank + 1 AS rank
FROM gainfinal CROSS JOIN
(SELECT @curRank := 0) vars
WHERE year = 2000
ORDER By `values` DESC
LIMIT 10;
LIMIT 10 OFFSET 20 --Equivalent to LIMIT 20, 10
使用
SELECT countrycode, `values`,
@curRank := @curRank + 1 AS rank
FROM gainfinal CROSS JOIN
(SELECT @curRank := 0) vars
WHERE year = 2000
ORDER By `values` DESC ;
在SQL so示例中:
SELECT countrycode, `values`,
@curRank := @curRank + 1 AS rank
FROM gainfinal CROSS JOIN
(SELECT @curRank := 0) vars
WHERE year = 2000
ORDER By `values` DESC ;
SELECT countrycode, `values`,
@curRank := @curRank + 1 AS rank
FROM gainfinal CROSS JOIN
(SELECT @curRank := 0) vars
WHERE year = 2000
ORDER By `values` DESC
LIMIT 10
还可以在where语句中使用秩变量
SELECT countrycode, `values`,
@curRank := @curRank + 1 AS rank
FROM gainfinal CROSS JOIN
(SELECT @curRank := 0) vars
WHERE year = 2000
ORDER By `values` DESC ;
...WHERE year = 2000 and @curRank <11;
…其中year=2000和@curRank在查询中添加限制10
。