2012-02-06 2 views
0

MySQL 테이블의 모든 행을 반복하고 모든 내용을 다른 테이블에 복사하는 동시에 복사본을 복사하는 방법 일부 행을 여러 번 업데이트하고 그 중 하나를 값 (시간)에서 며칠 후에 업데이트합니다. 며칠 후 테이블의 다른 값을 기반으로합니다. 테이블은 복사해야 할 데이터를 보유합니다. next_event가 '0'이면 한 번만 추가됩니다. next_event가 604800 (일주일이어야 함)이면 next_event 값을 날짜에 추가하여 행을 여러 번 추가해야합니다. 아래 예제에서 event1과 event3을 3 번 추가했습니다.하나의 MySQL 테이블에서 다른 테이블로 행을 복사하고 변수를 기반으로 한 값 중 하나를 업데이트하는 방법

표 A :

name  date    time  event  next_event 

name1  2012-06-02  18:00:00 event1  604800 
name1  2012-06-02  19:00:00 event2  0 
name1  2012-06-02  20:00:00 event3  604800 
name1  2012-06-02  21:00:00 event4  0 

표 B :이 더 sence하게

name  date    time  event  next_event 

name1  2012-06-02  18:00:00 event1  604800 
name1  2012-06-02  19:00:00 event2  
name1  2012-06-02  20:00:00 event3  604800 
name1  2012-06-02  21:00:00 event4  
name1  2012-13-02  18:00:00 event1  604800 
name1  2012-13-02  20:00:00 event3  604800 
name1  2012-20-02  18:00:00 event1  604800 
name1  2012-20-02  20:00:00 event3  604800 

바란다. 감사합니다. .

+0

아니요.이 말은 이해가되지 않습니다. 두 테이블 정보 (스크린 샷이 도움이 될 것입니다)를 게시하는 것이 좋습니다. –

답변

0

mysql_fetch_row으로 레코드를 반복하십시오. if-statement을 사용하여 확인해야하는 내용 (여러 장의 사본 등)을 확인하십시오. mysql_query을 사용하여 대상 테이블에 INSERT 또는 UPDATE 지정 문을 발행하십시오.

0

또한 부속 선택을 사용할 수 있지만, 어떤 점에서 그것은 추적하기 어려운 얻고 당신은 PHP 코드와 결합하여 더 잘 찾을 수 있습니다 (또는 커서를 사용하여 저장된 프로 시저 만들기)

삽입 B 2 (col1, col2, col3) 값 ( a1.col1, a1.col2를 선택하십시오. (a2.col3 +을 선택하십시오. 여기에서 일 지연을 선택하십시오.) a1 where some-other-criteria)

테이블이 매우 큰 경우 모든 것을 SQL로 코딩하면 성능이 향상 될 수 있습니다.

관련 문제