—это таблица изображений, из которой я хочу получить данные
Мне нужно два запроса.
Первый — получить actionNo из последнего stopTime до текущего времени.
Второй запрос — получить actionNo, если последний actionTime предшествует текущему времени.
Пример:
Если текущее время было: 00:46:20
первый запрос — получить действие № 9 (время остановки: 00:45:00)
второй запрос — получить actionNo 8 (actiontime: 00:41:30)
SELECT MAX(id) FROM timestuff WHERE `actionTime` < CURTIME();
SELECT MAX(id) FROM timestuff WHERE `stopTime` < CURTIME();
Это даст вам последний идентификатор времени действия / остановки до текущего времени, сработает, если ваша таблица всегда будет в том порядке, в котором вы ее указали (это означает, что идентификаторы отображают хронологию ваших значений времени — что не так в случае ваши данные как я только что заметил).
Для вашего случая: Вы можете сделать еще один шаг и добавить внутреннее объединение в самое близкое к текущему времени время, а затем посмотреть идентификатор этих данных.
Первый запрос: для последнего stopTime до текущего времени:
SELECT
timestuff.id
FROM
(
SELECT
MAX(stopTime) AS maxTime
FROM
timestuff
WHERE
`stopTime` < CURTIME()
) AS time
INNER JOIN timestuff ON timestuff.`stopTime` = time.maxTime;
Второй запрос: для первого actionTime после текущего времени:
SELECT
timestuff.id
FROM
(
SELECT
MIN(actionTime) AS minTime
FROM
timestuff
WHERE
`actionTime` > CURTIME()
) AS time
INNER JOIN timestuff ON timestuff.`actionTime` = time.minTime;
Других решений пока нет …