mysql update에 대해서(질문 쉬워요 제발답변주세요...ㅠㅠ)

computerbo의 이미지

mysql에서 update 테이블명 set [칼럼명] = [변경할 값] where 조건 이라는 명령을 주는 update문이 있습니다.

그런데 저는 set다음에 칼럼명대신 칼럼의 열 값을 넣고 싶습니다. 그러니까 무슨말이냐면 그 칼럼이 해당하는 위치가 있잖아요 그 위치를 숫자로 칼럼명대신 넣고 싶다는 얘기입니다...

그리고 where뒤에 행에 대한 조건을 넣는곳인데 이것또한 저는 조건이라기보다는 그냥 레코드위치값을 바로 넣고싶습니다.

결과적으로 질문을 정리하자면 칼럼명하고 조건을 넣는 update문이아닌 열위치값과 래코드위치값만 넣어서 그 해당 데이터만 수정할수 있게끔하고 싶은데 어떻게 해야 하나여?

익명 사용자의 이미지

못해요..
혹시 된다면 저도 궁금하네요

chanik의 이미지

칼럼 이름을 c1, c2, c3, ... 식으로 열번호 느낌으로 만들고, r 같은 이름으로 행번호 칼럼도 하나 만들어 키로 쓰시면 열번호/행번호로 위치 지정하는 느낌이 되지 않을까요?

(열번호, 행번호) == (3, 5) 지점을 아래와 같이 update 하는 식으로요.

UPDATE tbl SET c3='new val' WHERE r = 5;

아니면, 테이블은 제대로된 (의미를 담은) 칼럼명으로 만들되, 칼럼번호 느낌의 칼럼명을 갖는 view를 추가하여 업데이트에 쓸 수도 있을 것 같습니다.

CREATE VIEW tbl_gridview ( r, c1, c2, c3 ) AS
  SELECT r, empid, name, birth_date FROM tbl;
 
UPDATE tbl_gridview SET c3='new_val' WHERE r = 5;

생각만 했고 테스트해보진 않았습니다.