4

私はテーブルを持っています。同じテーブルの10行目の値で5行目を更新したいと思います。例えば:

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

ここでは、2番目の行を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を超える列がある場合、この方法でクエリを作成するのは面倒になります。各列に別のサブクエリを含める必要があるためです...更新するクエリを作成する他の方法はありますか同じテーブルの他の行のすべての値を含む行全体?

4

1 に答える 1

21

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
于 2012-06-05T10:33:01.387 に答える