쿼리문 다시 한번 질문드립니다..

쿼리문 다시 한번 질문드립니다..

QA

쿼리문 다시 한번 질문드립니다..

답변 1

본문

몇번째인지 모르겠네요..ㅎㅎ

거의 일주일째 이렇게 골머리 아픈일이..ㅠ

 

지금 워드프레스에서 그누보드로 회원DB를 이전하는 작업을 하고있습니다..

 

아이디, 비밀번호, 이메일은 insert로 잘 넣어놓은 상태입니다.

 

문제는 이제 이름, 연락처, 주소 등등의 정보인데..

 

이 정보들은 다른 테이블에 있는 하나의 컬럼값에 모두 들어가있습니다.

 

예를 들면 컬럼1의 phone1이라는 값의 컬럼2의 값은 연락처가 뜨구요

컬럼1의 first_name이라는 값의 컬럼2의 값은 이름이 뜹니다.

 

이런식으로 되어있는데 이것을 제가 SELECT문으로 추출을 일단 해보았습니다.

 

SELECT meta_value FROM `wp_usermeta` WHERE meta_key='first_name'

 

이것을 사용해서 이름값을 선택을 했습니다.

 

meta_value 라는 컬럼의 값을 wp_usermeta라는 테이블에서 선택을 하는데

대신 meta_key의 값이 first_name이어야한다는것입니다.

 

이렇게 해서 추출은 다 해놓은상태!

하지만 이것을 어떻게 그누보드 테이블의 mb_name컬럼에 업데이트하여 넣어야할지가 고민입니다..

 

정말 안해본 방법이 없습니다..

 

---------------------

UPDATE users_db
INNER JOIN
wp_usermeta
ON users_db.mb_no = wp_usermeta.user_id
SET users_db.mb_name = wp_usermeta.meta_value
WHERE meta_key = 'first_name'

 

이렇게 해서 회원번호를 매칭시켜서 업데이트 해보았지만

 

wp_usermeta라는 테이블에서 회원번호가 누락된부분이있어서 제대로 옮겨지지않습니다..

 

------------------------

 

UPDATE users_db
SET mb_name =
(SELECT meta_value
 FROM `wp_usermeta`
 WHERE meta_key='first_name');

 

이렇게 해본결과, 서브쿼리는 1개의 값밖에 추출하지못한다는 오류를 선고받았습니다..

저는 여러개의 값을 넣어야하기때문이죠..
그래서 이부분에 대해서 해결방안으로 (SELECT 앞에 ANY를 넣어봤지만.. 구문이 잘못됐다고 오류가 뜨네요..ㅎ
 

---------------------------

 

저만 이렇게 힘든건지 모르겠습니다..

의뢰를 할 수도 없는 상황이라서... 정말 진짜 일주일째 계속 이러고있는데 도와주시면 정말 감사하겠습니다...

 

말로하기엔 정말 간단한건데 쿼리문으로 하려니..

 

회원정보가 1000개가 넘는상황이라서 노가다로 하기에도.. 힘든상황이구요...

이 질문에 댓글 쓰기 :

답변 1

update table x

set value = (sub query  where 조건111 and x와의 연결값) 

where 조건111 and x와의 연결값

 

이렇게 하면 

multi update가 가능합니다.

뿐만아니라.

 

set (value1, value2, value3) = (selec col1, col2, col3 from ..... where )

의 방식으로 멀티컬럼을 동시에 업데이트도 가능합니다.

 

테이블전환은 다양한 방법이 있습니다.

 

문제의 관점을 조금 다른 시각으로 풀면 더 쉽게 해결가능하실겁니다.

 

 

A 테이블에서 B 테이블로의 전황이 1:1로 안이루어질경우

 

A 테이블을 C테이블로 임시로 생성하여 중간추출값으로 셋팅하고

C테이블에서 B에 넣을 조건별로 추출해서 insert하는것도 방법입니다.

 

insert into table select 

가 가능한것은 아시죠?

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 59
© SIRSOFT
현재 페이지 제일 처음으로