Помогите составить правильный sql запрос

202
04 января 2019, 10:10

Порядок нахождения записей в Б.Д построен указным на скриншоте образом.

Мне нужно вывести 5 строк (с конца) из каждого блока записей с последующей возможностью использовать offset.

Answer 1

Можно использовать 3 отдельных запроса с лимитом 5:

(SELECT * FROM tenders WHERE category_id IN(1) ORDER BY id DESC LIMIT 5, 5)
UNION
(SELECT * FROM tenders WHERE category_id IN(2) ORDER BY id DESC LIMIT 5, 5)
UNION
(SELECT * FROM tenders WHERE category_id IN(3) ORDER BY id DESC LIMIT 5, 5)

Но в этом случае если в какой-то категории не окажется записей, то выведется не 15 записей, а меньше. Можно еще поиграть с общим лимитом для всего запроса и убрать лимит с 3 запроса. Тогда в случае, если не будет достаточно записей в 1 или 2 категории, то с 3-й выберется больше записей.

READ ALSO
в правильном ли месте вызываю session_start()?

в правильном ли месте вызываю session_start()?

В методах класса иногда приходиться работать с сессиямиВопрос:

205
Фоново запустить в процессе выполнения php скрипта другой скрипт

Фоново запустить в процессе выполнения php скрипта другой скрипт

Не могу сообразить как сделать данноеВ процессе выполнения php скрипта мне нужно запустить еще один php файл

209