MySQL / PHP: ведение дополнительной записи во время подкачки

StackOverflow https://stackoverflow.com/questions/1226660

  •  22-07-2019
  •  | 
  •  

Вопрос

У меня есть список записей, которые я хочу просмотреть с помощью LIMIT, однако первая запись, которая возвращается без LIMIT, также является корневым идентификатором для остальных записей, и мне нужно сохранять его для каждой страницы. Это возможно? (Я бы предпочел не запускать дополнительный SQL-оператор)

id  |  index  |  title
1   |  0      |  index of titles
2   |  1      |  title1
3   |  1      |  title2
4   |  1      |  title3
5   |  1      |  title4

LIMIT 3, 2 должен возвращаться ...

id  |  index  |  title
1   |  0      |  index of titles
4   |  1      |  title3
5   |  1      |  title4
Это было полезно?

Решение

SELECT  *
FROM    (
        SELECT  *
        FROM    mytable
        WHERE   index = 0
        ORDER BY
                index, id
        LIMIT 1
        ) q
UNION ALL
        (
        SELECT  *
        FROM    mytable
        WHERE   index = 1
        ORDER BY
                index, id
        LIMIT 3, 2
        ) q2

Если у вас есть составной ключ в (index, id) MyISAM ) или просто индекс в index InnoDB ), первый запрос почти ничего не будет стоить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top