Как изменить смещение на основе результата - PullRequest
0 голосов
/ 08 января 2020

В MYSQL (где также допускается php) предположим, что у нас есть таблица items, состоящая из id, name, status.

И вы хотите получить элемент перед последним, следующий запрос будет отлично работать

SELECT * from `items`
WHERE `name` = 'xxx'
ORDER BY id DESC
LIMIT 1 
OFFSET 1;

Однако, если статус этого элемента находится в (4,5,6), то я хочу получить один до него. Вкратце, все дело в увеличении смещения, но как это сделать в запросе?

1 Ответ

0 голосов
/ 08 января 2020
SELECT * from `items`
WHERE `name` = 'xxx'
AND status NOT IN ('.implode(',',$the_Array.')
ORDER BY id DESC
LIMIT 1;

ответ был избавиться от смещения

...