1

T3行のデータを含むテーブルがあります。ここで、新しい列を追加しましたc。次に、既存の行の
値をに挿入します。 私はこのようにします:c

insert into T (c) values(1),(2),(3);

ただし、既存のデータを更新する代わりに、新しい行を挿入しました。
既存のデータを更新するにはどうすればよいですか?
where句を指定したくありません。挿入と同じように、シリアルごとに値を追加したいだけです。

4

2 に答える 2

2

UPDATE ステートメントを使用して、既存の行の列に値を割り当てます。

UPDATE t
   SET t.c = 1
 WHERE t.a = 1 ;

既存の各行に一意の連続した整数を割り当てるには、主キーまたは各行の一意の識別子を使用する必要があります。この例では、id列が一意であると想定しています。

UPDATE t
  JOIN ( SELECT r.id
              , @i := @i + 1 AS i
           FROM t r
           JOIN (SELECT @i := 0) n
          ORDER BY r.id
        ) s
    ON s.id = t.id 
   SET t.c = s.i

実際には、これを行うこともできます:

UPDATE t
  JOIN ( SELECT @i := 0 ) n
   SET t.c = @i := @i + 1
 ORDER BY t.id

AUTO_INCREMENT 属性を調べたいと思われるかもしれません。

于 2013-02-04T19:39:39.673 に答える
0

以下のクエリを使用できます

UPDATE Table
SET Col1='1', Col2='2'

等々...

また、以下のように、特定の条件でデータを更新する場合は、where 条件を使用できます。 ---これは、私のデータベースで使用されるクエリの単なる例です---

UPDATE City_Employee
SET City='Banglore' where (City='Delhi')

頑張ってください!

于 2013-02-05T06:11:19.633 に答える