Как получить строку при изменении данных столбца
У меня есть следующая таблица
Id | Status | date
-------------------
1 | Onsite |2007
2 | Onsite |2008
3 | Onsite |2009
4 | Abroad |2010
5 | Abroad |2011
6 | Onsite |2012
7 | Abroad |2013
8 | Abroad |2014
9 | Onsite |2015
Я хочу запрос в MySQL, который возвращает запись, когда статус изменяется с "За рубежом" на "На месте". В приведенном выше случае запрос вернет мне следующие строки:
6 | Onsite |2012
9 | Onsite |2015
1 ответ
Решение
Попробуйте следующий запрос, который работает, даже если идентификаторы не в последовательности:
SELECT *
FROM 'table_name' t
WHERE t.status = 'Onsite' and
EXISTS(SELECT t1.id
FROM 'table_name' t1
WHERE t1.status = 'Abroad' and t1.id<t.id
ORDER BY t1.id DESC
LIMIT 1,1);