У меня есть таблица, содержащая список teams
, у каждого team
есть поле с именем update_at
, в котором указывается datetime
последнего обновления.
Мне нужно проверять каждоеteam
если необходимо обновить.Сначала я создал запрос вроде:
SELECT update_at FROM team WHERE id = 67
, а затем сравнил update_at
с 7 (что является максимальным числом дней между обновлением и другим).
Это решениеэто дорого, потому что если у меня 50 teams
, мне нужно открыть 50 соединений и выполнить 50 query
.
Так что я думаю, что-то в этом роде:
SELECT id FROM `team` WHERE (id = 67 AND update_at > DATE_SUB(SYSDATE(), Interval 7 Day))
AND id = 68 AND update_at > DATE_SUB(SYSDATE(), Interval 7 Day))
Первая проблемавот избыточность, я не эксперт sql
, поэтому я не знаю, возможно ли избегать добавления каждый раз DATE_SUB(SYSDATE(), Interval 7 Day)
.
Вторая проблема заключается в том, что запрос не возвращаетчто угодно.
Структура таблицы следующая:
id | name | update_at
67 Tirana 2019-03-06 11:00:12
68 Partizan 2019-03-06 11:02:04
69 Lusitanos 2019-03-14 09:00:40
Ожидаемый результат - 67, 68
, поскольку update_at
меньше, чем 7 дней от текущей даты.Запись 69 была обновлена только 2 дня назад с сегодняшнего дня (2019-03-16).
ОБНОВЛЕНИЕ:
Дубликат не соответствует всем требованиям вопроса.Поскольку мне нужно возвращать идентификатор каждой записи, которая имеет поле update_at менее чем за 7 дней от текущей даты, не сравнивать все поля, как другой вопрос -