我已经使用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(右边的最新项目,使用右箭头,超出范围); 希望它不是太模糊的问题,因为我很难弄清楚如何解释问题。 ;)
答案 0 :(得分:1)
在第1阶段,您可以在返回的行中记录最小ID。然后在其他查询中,只需添加WHERE条件以确保所选的id大于或等于该最小值,例如
SELECT * FROM table WHERE id <'$1' AND id >='$min' ORDER BY id DESC LIMIT 3
如果您的最小ID为7,而“右”查询使用值7完成,则不返回任何内容。如果我理解你的问题,这就是你想要的行为。