Задавайте вопросы, мы ответим
Вы не зашли.
Ребята, помогите с запросом, пожалуйста.
Есть таблица: users
id username roomid lastactive active
269 2819 1 2010-08-25 21:21:44 y
268 62 1 2010-08-25 21:25:48 y
И надо обновить записи с active="n", где время lastactive < текущего - 60 секунд.
Запросы таких видов не работают:
UPDATE users SET active = "n" WHERE lastactive < DATE_SUB(NOW(), INTERVAL 1 MINUTE);
UPDATE users SET active = "n" WHERE lastactive < TIMESTAMPADD(MINUTE,-1,NOW());
Спасибо!
База данных MYSQL
Неактивен
Столбец lastactive - TIMESTAMP!
Неактивен
Что значит "не работают"?
test >select * from a where lastactive < now()-interval 1 minute;
+------+------+---------------------+
| id | act | lastactive |
+------+------+---------------------+
| 1 | y | 2010-08-25 22:45:29 |
| 2 | y | 2010-08-25 22:45:33 |
| 3 | n | 2010-08-25 22:45:39 |
+------+------+---------------------+
3 rows in set (0.00 sec)
test >update a set act='n' where lastactive < date_sub(now(),interval 1 minute);
Query OK, 2 rows affected (0.47 sec)
Rows matched: 3 Changed: 2 Warnings: 0
Неактивен