2010-05-18 9 views
0

안녕하세요이 코드에서 무엇이 잘못 되었습니까 ?? 나는 24 시간 테이블에 값을 업데이 트하도록 설정했습니다.하지만 문제는 $ 행이 비어 있으면 테이블 -2에서 값을 삽입하지만 24 시간 후에는 값을 업데이트하지 않을 것입니다.HOw 표 2에서 표 1로 업데이트합니까

if ($row == 0){ 
    mysql_query("INSERT INTO table-1 
    (regtime,person,location,address,rank,ip,geocode) 
    SELECT NOW(),person,location,address,rank,ip,geocode FROM table-2 ORDER BY RAND() LIMIT 1"); 
} 
else{ 
    mysql_query("UPDATE table-1 SELECT regtime=NOW(), 
       person=person, 
       location=location, 
       address=address, 
       rank=rank, 
       ip=ip, 
       geocode=geocode FROM table-2 ORDER BY RAND() LIMIT 1"); 
} 

답변

0

가장 쉬운 방법은이다 ... 그것은 기존 값을 삭제하고 새 (임의의 값)를 삽입하거나 무엇을 어느 새 값으로 동일한 $ 행을 업데이트해야합니다 내가 원하는입니다 INSERT를 실행하기 전에 table-1의 기존 행을 삭제하십시오.

테이블의 기본 키가 무엇인지 알 수 없습니다. 나는 그 사람을 생각하니?

DELETE FROM table-1 where person in (select person FROM table-2) 

INSERT INTO table-1 (regtime,person,location,address,rank,ip,geocode) 
SELECT NOW(),person,location,address,rank,ip,geocode FROM table-2 ORDER BY RAND() LIMIT 1 

죄송합니다. 잘못된 것이 있으면 mysql을 사용하지 않습니다. 아무것도하지 않는 이유를 UPDATE 문에 더 SET 없다

+0

NOP 기본 키 ID와 하나 개의 행보기가 그래서 ID가 = 1 – mathew

0

사용

0

INTO 대신 INSERT의 INTO REPLACE, 즉이다.

UPDATE manual page

+0

당신이 어디에 SET를 추가하는 말해 줄 수 있다고? 나는 내 지식에 따라 추가하고 제거했다. – mathew

+0

'UPDATE 테이블 설정 columnname = 값 WHERE 조건' – nico