2014-09-27 3 views
0

Я пытаюсь выяснить, как обновлять строки MySQL старше 30 секунд или 30 минут.Как обновить строки старше 30 секунд или 30 минут

$sql = "SELECT C.sessid, C.datetime, U.username, U.firstname, U.lastname, U.sessid FROM checkins C, users U WHERE U.sessid = C.sessid AND SUBTIME(NOW(),'0 00:01:00')>C.datetime"; 
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
mysql_query("UPDATE checkins SET status = 'was in'"); 
} 

Здесь я присоединился к таблицам, только таблице таблицы пользователей и проверок. Я использую subtime, чтобы определить разницу во времени и попытаться обновить строки таблицы проверок, если C.datetime старше 1 минуты только для теста

ответ

1

Это то, что вы ищете?

UPDATE checkins c join 
     users u 
     on c.sessid = u.sessid 
    SET status = 'was in' 
    WHERE c.datetime < now() - interval 30 second; 

users таблица, вероятно, не требуется, если не требуется его для фильтрации.

Просто измените 30 second на 30 minute на 30-минутный интервал.

+0

спасибо за помощь Гордон, хотя все еще не могу его уйти, я использую дату («Ymd H: i: s») для c.datetime – morty

+0

Вы должны хранить даты в базе данных, используя 'datetime', а не как строки. –

+0

Я не использовал datetime, потому что он всегда возвращается 0000-00-00 00:00:00 – morty

Смежные вопросы