api/ajax에 대한 페이지 매기기를 수행하고 싶습니다. 페이지 1, 2 페이지 유형을 사용하는 경우 .. 새 행만 작성하면 중복 행이 될 수 있습니다.특정 ID에 대한 색인/오프셋 기본 찾기
는, 그래서 일을 어떻게 인스 타 그램 API를 참조 아래 시도
첫 번째 요청 :
사용 쿼리 1
는 첫 번째 행 오프셋 읽기 매개 변수 제로와 아약스는 다음
"pagination": {
"prev_end_id": ..,
"count": ...
}
를 요청하는
pagination
데이터를 반환
다음 요청 :
사용 검색어 2
id
또는 price_number
로 주문한 경우 0입니다.이면 prev_end_id
또는 prev_end_price
을 반환하고 desc
또는 asc
을 확인한 다음 작거나 크게 선택하십시오.
name
또는 다른 유형의 열로 주문하는 경우 어떻게해야합니까?
나는 정확한 것을하고 있습니까, 이것을 해결하는 더 좋은 방법이 있습니까?
나는 단지 요청이 다음,
이 ID에 기반을 상쇄 찾을 end_id
,
이 먼저 요청과 동일 할 반환되는 열을 기준으로 순서를 무시 하는가?
그래서 어떻게 id에 오프셋 기지를 찾을 수 있습니까?
모든 행 및 루프 행을 선택하면 특정 id 인덱스를 찾을 수 있습니까? OFFSET
성능 문제이며, 새로운 데이터가 동시에 추가하는 경우 (당신이 관찰로) 이상한 결과가 발생할 수 있기 때문에,
1
SELECT
p.*
FROM product p
ORDER BY p.id desc NULLS LAST OFFSET $1 LIMIT $2
2
SELECT
p.*
FROM product p
WHERE p.id < $1
ORDER BY p.id desc NULLS LAST LIMIT $2
1
SELECT
p.*
FROM product p
ORDER BY p.name desc NULLS LAST OFFSET $1 LIMIT $2
2
SELECT
p.*
FROM product p
AND p.price_number < $1
ORDER BY p.name desc NULLS LAST LIMIT $2
CREATE TABLE IF NOT EXISTS "product"(
"id" SERIAL NOT NULL,
"name" varchar DEFAULT NULL,
"name_slug" varchar DEFAULT NULL,
"price_number" numeric DEFAULT NULL,
PRIMARY KEY ("id")
);
답장을 보내 주셔서 감사합니다. 문제의 사례와 동일하게 보입니까? 내 문제는 열 데이터 형식이 문자열이 아닌 정수가 아닌 경우 sort_key가되도록하는 방법입니다. last_key – user1775888
예, 나는이 가능성을 귀하의 질문에 고려했다고 생각했지만 귀하의 사례는 너무 읽기가 힘들어서 내가 가장 잘 생각했습니다. 명백한 것. 문자열은 문제가되지 않아야하며, 메서드는 비교를 허용하는 모든 데이터 형식에 대해 작동하며, 문자열은 확실히 않습니다. –
정말 고마워요 !! – user1775888