Я хочу сделать разбиение на страницы для api/ajax, , если использование страницы 1, страница 2 типа .. может быть повторяющейся строкой, если новая строка просто создана.найти индекс/базу смещения по определенному идентификатору
Так что я вижу, как Instagram API делает и попытался ниже,
первый запрос:
использование запроса 1
читать первый ряд смещения параметр равен нулю, и возвращать pagination
данные для Ajax, чтобы запросить следующую
"pagination": {
"prev_end_id": ..,
"count": ...
}
запрос следующий:
использование запроса 2
Если заказ id
или price_number
is integer
, я вернусь prev_end_id
или prev_end_price
, check desc
или asc
, затем выберите размер или мень.
Но если заказ на name
string
или другой тип колонки, как это сделать?
Я делаю правильно, есть ли лучший способ решить это?
Должен ли я игнорировать порядок, в котором колонки, просто вернуть end_id
,
когда запрос дальше,
найти смещение базы по идентификатору, а затем сделать то же самое, как первый запрос?
так, как найти смещение базы на id?
Выбрать все строки и строки цикла, чтобы найти определенный индекс id? звуки низкой производительности ...
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
user1775888
Да, у меня создалось впечатление, что вы рассмотрели эту возможность в своем вопросе, но ваши примеры были настолько трудными для чтения, что я думал, что это лучше быть явным. Строки не должны быть проблемой, метод работает для любого типа данных, который позволяет сравнивать, и строка, безусловно, делает. –
Большое вам спасибо, я попробую! – user1775888