2014-09-27 4 views
0

30 초 또는 30 분보다 오래된 MySQL 행을 업데이트하는 방법을 알아 내려고하고 있습니다.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'"); 
} 

여기에 나는 사용자 테이블과 체크 인 테이블 만 조인했습니다. C.datetime이 테스트를 위해 1 분보다 오래된 경우 시차를 확인하고 checkins 테이블의 행을 업데이트하려고 subtime을 사용하고 있습니다.

답변

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 second30 minute으로 30 분 간격으로 변경하십시오.

+0

고든에게 도움을 주셔서 감사합니다. 아직 갈 수는 없지만, 저는 c.datetime에 대해 날짜 ("Ymd H : i : s")를 사용하고 있습니다. – morty

+0

데이터베이스에 날짜를 저장해야합니다. 문자열. –

+0

항상 0000-00-00 00:00:00 – morty

관련 문제