2011-06-13 508 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