2012-03-11 5 views
1

내 코드는 테이블에서 마지막 10 개의 값을 가져옵니다. 이 테이블의 구조는 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 개의 행을 가져오고 싶습니다.

가장 적합한 방법은 WHERE 조건을 사용하는 것입니다. 당신이 id DESC으로 주문되기 때문에 당신은 id > $previous_id로 처음 10 개 행을 원하는 :

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 테이블 ORDER BY id DESC LIMIT $ previous_id, 10 "(WHERE'$ previous_id =="11 "')을 사용하면 11-21 값을 반환합니다. – Luis

+2

'LIMIT 10 '은 1에서 10까지를 줄 것입니다. – Sarfraz

관련 문제