2012-03-11 38 views
1

我的代碼從表中獲取最後10個值。該表具有te結構id,text,並且具有20行。我使用這段代碼負限制器MySQL

<?php 
$query = mysql_query("SELECT * FROM `table` ORDER BY `id` DESC LIMIT 10"); 
// Fetching data stuff here 
?> 

並且它返回ID爲11-20的數據。 (20箇中的最後10個)

我想通過AJAX從此1-10中獲得前10個值。我想也許這會工作

$previous_id= $_GET["last"]; // This time it will be 11 
mysql_query("SELECT * FROM `table` ORDER BY `id` DESC LIMIT $previous_id, -10"); 

但我沒有,有什麼建議嗎?

感謝

PS:這不是一個gimme teh codez問題,我只是想知道如何使這項工作查詢。

回答

1

如果我正確地理解了你,你想得到id = $previous_id之前的10行,按降序ID排序。

如果是這種情況,最好的辦法是使用WHERE條件。當你被id DESC訂購您想要的前10行與id > $previous_id

SELECT * FROM `table` WHERE `id` > $previous_id ORDER BY `id` DESC LIMIT 10 

這些會在你的原始查詢$previous_id前10行。

1

只需使用正數,而不是-10

"SELECT * FROM `table` ORDER BY `id` DESC LIMIT $previous_id, 10" 

我們假設$previous_id5,查詢將是:

"SELECT * FROM `table` ORDER BY `id` DESC LIMIT 5, 10" 

返回的行將從510記錄中開始。

+0

沒有男人,我已經有11-20,我想要1-10。如果我使用SELECT * FROM table ORDER BY id DESC LIMIT $ previous_id,10「'(WHERE'$ previous_id ==」11「'),它將返回11-21的值。 – Luis 2012-03-11 17:43:48

+2

'LIMIT 10'會給你1到10。 – Sarfraz 2012-03-11 17:48:15