MYSQL - 范围内的LIMIT

时间:2011-06-13 14:38:42

标签: mysql select range limit

我已经使用AJAX为结果构建了一个滑块,我有一个小问题如下:

假设一个表有一组1 to 15行,但是,我只使用前9行;在第一阶段 i (SELECT * FROM table ORDER BY id DESC LIMIT 9)中,使用结果构建导航并显示第一组。

然后在第二阶段我正在查询9个项目,每次3个来自左侧,所以我(SELECT * FROM table WHERE id > '$1' ORDER BY id DESC LIMIT 3)正确所以我(SELECT * FROM table WHERE id < '$1' ORDER BY id DESC LIMIT 3)其中$1是每个组的最后一项,因此(13 || 11 || 7)来自(15, 14, 13) || (12, 11, 10) || (9, 8, 7)

好吧,想象一下如上所述的详细解释:

<- [ 15 - 14 - 13 - 12 - 11 - 10 - 9 - 8 - 7 ] ->
   [    15     ]  [    14     ]  [    13     ]

好的,问题当“正确查询”到达last item: 7时,结果集显示(6, 5, 4)显然是正确但不在我们的范围是15到7 ,而不是为了我的目的它应该什么也不返回。我怎么能用一个SQL查询来做到这一点?


这里只是滑块demo(右边的最新项目,使用右箭头,超出范围); 希望它不是太模糊的问题,因为我很难弄清楚如何解释问题。 ;)

1 个答案:

答案 0 :(得分:1)

在第1阶段,您可以在返回的行中记录最小ID。然后在其他查询中,只需添加WHERE条件以确保所选的id大于或等于该最小值,例如

SELECT * FROM table WHERE id <'$1' AND id >='$min' ORDER BY id DESC LIMIT 3

如果您的最小ID为7,而“右”查询使用值7完成,则不返回任何内容。如果我理解你的问题,这就是你想要的行为。