Использование «LIMIT OFFSET» с array_to_json в PostgreSQL - PullRequest
0 голосов
/ 13 февраля 2019

У меня проблема при использовании предельного смещения в postgresql.Хотя я указываю предельные значения смещения, в нем перечислены все данные.

SELECT 
        array_to_json(
            array_agg(
                json_build_object(
                    'nickName', u.username,
                    'date', to_char(p.create_date, 'DD/MM/YYYY'),
                    'time', to_char(p.create_date, 'HH24:MM'),
                    'questionId', p.post_id,
                    'questionContent', p.content,
                    'status', CASE WHEN p.status = 0 THEN 'Waiting for approval' WHEN p.status = 1 THEN 'Approved' WHEN p.status = 0 THEN 'Reject' END,
                    'rejectReason', p.reject_reason,
                    'answerUrl', p.seo_url
                )
            )
        )
  INTO _posts
FROM posts p
  INNER JOIN users u ON u.user_id = p.user_id 
WHERE p.user_id = _user_id
LIMIT 5 OFFSET _page * 5;

Пожалуйста, просмотрите мой код и скажите, где проблема.

1 Ответ

0 голосов
/ 13 февраля 2019

Без переписывания всего запроса для вас может подойти json_agg.

SELECT json_agg(x) AS json_feed
FROM (
    SELECT
        column AS "columnName", ...
    FROM your_table
    LIMIT 5
) AS x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...