2012-06-05 4 views
1

테이블이 있습니다. 같은 테이블에서 10 번째 행 값으로 5 번째 행을 업데이트하고 싶습니다. 예를 들면 다음과 같습니다.Mysql 행을 동일한 테이블의 다른 행 값으로 업데이트하십시오.

SlNo Name Quali Exp 
1  x B.E  2 
2  y BSC  3 
3  Z B.A  1.5 
4  A MSC  2 
5  B MBA  5 

여기서는 다섯 번째 행의 값으로 두 번째 행을 업데이트하려고합니다.

UPDATE table 
     SET Name=(select Name from table where slNo='5'), 
       Quali=(select Quali from table where slNo='5'), 
       Exp=(select Exp from table where slNo='5') 
     where slNo='3'; 

이 잘 작동하지만 20 개 이상의 열이있는 경우는 각 열에 대해 내가 포함하기 때문에, 이런 식으로 쿼리를 작성하는 수고가된다 : 여기

내 현재 쿼리입니다 다른 하위 쿼리 ... 같은 테이블에있는 다른 행의 모든 ​​값을 사용하여 전체 행을 업데이트하는 쿼리를 작성하는 다른 방법이 있습니까?

+0

당신은 당신이 당신의 문제를 해결하는 데 도움이되는 것 5 행과 2 행을 업데이트 할 이유를 제공한다. –

답변

5

사용이 여러 테이블 UPDATE 구문 자체 조인은 :

UPDATE `table` AS t1 JOIN `table` AS t2 ON t2.slNo = 5 
SET t1.Name = t2.Name, t1.Quali = t2.Quali, t1.Exp = t2.Exp 
WHERE t1.slNo = 3 
+0

괜찮습니다. ...하지만 테이블 열이 25보다 많으면 ... 25 열 모두를 작성해야합니다. –

+0

@ Dhinesh.B : update-all-columns-but-one 구문을 찾고 있습니까? 나는 당신이 정말로 필요로하는 것이 많은 것들을 업데이트하기보다는 정렬을 위해 사용할 정렬 값이있는 또 다른 칼럼이라는 느낌을 가지고있다. – flesk

관련 문제