SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.08.2010 22:40:25

ivanz
Участник
Зарегистрирован: 21.05.2010
Сообщений: 21

Удаление старых записей

Ребята, помогите с запросом, пожалуйста.

Есть таблица: 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

Неактивен

 

#2 25.08.2010 22:41:57

ivanz
Участник
Зарегистрирован: 21.05.2010
Сообщений: 21

Re: Удаление старых записей

Столбец  lastactive - TIMESTAMP!

Неактивен

 

#3 25.08.2010 22:53:24

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Удаление старых записей

Что значит "не работают"?

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

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson