MySQL的限制范围
问题描述:
SELECT name FROM mydb ORDER BY score DESC LIMIT 10
查询将返回前10排名,MySQL的限制范围
如何修改LIMIT
,或许有另一种语法来查询10级直到20级?
答
这是很基本的东西。您应该使用:
SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10;
答
限制也有一个偏移参数
SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10
答
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
答
您可以使用偏移
SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10
这里,偏移表明,从那里未来10个数据将显示。
您还可以使用如下:
SELECT name FROM mydb ORDER BY score DESC LIMIT 10, 10
+1
请[不要提供已被其他答案覆盖的解决方案](// meta.stackexchange.com/a/192293/269535)。如果你同意另一个答案,那么当你有足够的[声誉](// *.com/help/whats-reputation)时,你可以[upvote it](// *.com/privileges/vote-up),这是堆栈溢出方式表示您的同意。另见[回答]。 – 2016-10-20 03:08:36
OFFSET绝对是一个更好的主意时,你必须构建在代码查询。 – qasimzee 2015-03-24 17:11:57