2017-11-01 5 views
1

일부 프로덕션 서버에서 테이블을 수정하고 다른 테이블에 넣으려는 경우 문제는 이전 값이 여러 값을 쉼표로 구분하여 새 테이블에 넣을 것입니다. 쿼리별로 여러 레코드에. 나는 INSERT INTO user_emails(user_id, email) SELECT id, email FROM users과 같은 방법을 알고 있지만 필드의 전체 내용을 복사합니다.쉼표로 쉼표로 여러 개의 행으로 분할 된 데이터

table users (old) 
----------------------------------------------------- 
id name emails (removed) 
----------------------------------------------------- 
1 A  [email protected], [email protected] 
2 B  [email protected], [email protected], [email protected] 

table user_emails (new table) 
--------------------------------- 
id user_id email 
--------------------------------- 
1 1  [email protected] 
2 1  [email protected] 
3 2  [email protected] 
4 2  [email protected] 
5 2  [email protected] 

모든 솔루션? 감사합니다

+1

[쉼표로 구분 된 값 목록을 저장하면 안됩니다.] (https : // sta 3653562 # 3653574 # 3653574), 실제로 SQL이 SQL의 개별 요소와 함께 작동하기를 원한다면, 다음과 같이 입력하십시오. 기울기. –

+0

메시지 설명과 같이 중요하지 않은 데이터를 저장하기 전에 위의 예제 데이터를 사용하는 것이 좋지만 지금은 적절한 테이블 마스터 - 세부 정보가 필요하므로 쉽게 관리 할 수 ​​있습니다. –

+0

@billkarwin 그 문제를 해결하려고하는 것 같습니다. – Strawberry

답변

1

당신이해야 얻을 DB에서 데이터를 가져 오기 및 배열에 저장 한 후

<?php 
    $data=explode("," , $allEmails); 
?> 

지금 $data 마지막으로이

Array ([0] => [email protected] [1] => [email protected] [2] => [email protected]) 

같은 배열로 변환 할 수있는 데이터를 분할 explode() 기능을 사용하면 삽입 쿼리를 사용하여 새 테이블에 삽입 할 수 있습니다.