2011-06-13 124 views
1

我已经建立了使用AJAX的结果的滑块,和我有一个小问题如下:MYSQL - 限制范围之内

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

然后,在第二阶段即时查询theese 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是各组的最后一个项目从(15, 14, 13) || (12, 11, 10) || (9, 8, 7)所以(13 || 11 || 7)

好了,想象,有以上详细的解释表示象下面这样:

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

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


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

回答

1

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

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

的情况下你的最小内径为7和“右”查询用值7完成,它不会返回任何内容。如果我正确理解你的问题,这就是你想要的行为。

+0

嘿丹,我无法想象一个最简单的解决方案,谢谢你的努力! ;) – 2011-06-13 18:02:40