【发布时间】:2011-08-11 16:02:31
【问题描述】:
SELECT name FROM mydb ORDER BY score DESC LIMIT 10;
上面的查询将返回前 10 个排名。
如何修改LIMIT,或者是否有其他语法可以查询第10到第20位?
【问题讨论】:
SELECT name FROM mydb ORDER BY score DESC LIMIT 10;
上面的查询将返回前 10 个排名。
如何修改LIMIT,或者是否有其他语法可以查询第10到第20位?
【问题讨论】:
Limit 还有一个偏移量参数
SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10
【讨论】:
你应该使用:
SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10;
http://dev.mysql.com/doc/refman/5.5/en/select.html
两个参数 10,10 是 (Offset, Limit),因此这将检索第 11-20 行。
9,11 需要获得第 10 - 20 名。
【讨论】:
SET @rank = 0;
SELECT rank, name, score
FROM (
SELECT @rank := @rank +1 AS rank, name, score
FROM mydb
ORDER BY score DESC
LIMIT 100
) X
WHERE rank >= 10;
【讨论】:
使用offset 澄清查询。
SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10
【讨论】:
您可以使用偏移量
这里,offset 表示接下来 10 个数据将从何处显示。
你也可以在下面使用:
【讨论】: