tb_l_vtx의 테이블에 l_code값이 여러게 존재합니다. 그래서 컬럼을 추가하여 같은 l_code값끼리 콤마 인자로 업데이트 하려고합니다
그래서
SELECT l_code, group_concat(tb_l_vtx.x_wg) FROM tb_l_vtx where l_code = l_code GROUP BY l_code;
위와같이 쿼리를 실행하여 그림과 같이 결과를 얻었습니다.
이후 하나의 컬럼을 추가(x_wg_re)하여 선택된 값들을 추가하기 위하여 아래와 같은 쿼리로 실행하였는데 오류(Error Code: 1064)가 되었습니다.
UPDATE TB_L_VTX SET X_WG_RE = SELECT group_concat(x_wg separator ',') FROM tb_l_vtx WHERE L_CODE = L_CODE GROUP BY l_code;
업데이트 문의 무엇이 문제일까요?
조인 없데이트 시도해 보시구요.
혹시 safe update 관련 오류가 난다면?
SET sql_safe_updates = 0; 하신 후에 다시 시도해 보세요.
-- 1. 조인 업데이트 UPDATE tb_l_vtx a INNER JOIN (SELECT l_code , GROUP_CONCAT(x_wg ORDER BY seq_vtx) x_wg_re , GROUP_CONCAT(y_wg ORDER BY seq_vtx) y_wg_re FROM tb_l_vtx GROUP BY l_code ) b ON a.l_code = b.l_code SET a.x_wg_re = b.x_wg_re , a.y_wg_re = b.y_wg_re ; -- 2. 신규테이블 생성 SELECT l_code , GROUP_CONCAT(x_wg ORDER BY seq_vtx) x_wg_re , GROUP_CONCAT(y_wg ORDER BY seq_vtx) y_wg_re FROM tb_l_vtx GROUP BY l_code ;