Выборка элементов из БД и смена значений

Рейтинг: 1Ответов: 1Опубликовано: 04.11.2014

Здравствуйте.

Подскажите, как мне реализовать следующее.
По крону будет запускаться скрипт, который из определенной таблицы БД (dates, status) должен вытаскивать все значения, дата которых старше месяца от текущей даты. Дата в поле dates хранится в unixtime и ставит этим записям в поле статус значение inactive.

То есть, я так понимаю, нужно получить текущую дату в unixtime, потом получить дату на месяц раньше (-2678400), и если значение в dates меньше или равно получившемуся, то ставить статус inactive. Помогите с кодом в плане sql запроса, завис.

Ответы

▲ 2Принят

помогите с кодом в плане sql запроса завис.

UPDATE tbl_name SET status = 'inactive' WHERE dates <= :deadline

где :deadline заменяется на полученную временную метку.

Можно снизить количество обновляемых записей (понятия не имею, как это скажется на производительности):

UPDATE tbl_name SET status = 'inactive' WHERE dates <= :deadline AND status != 'inactive'