1

我有一个表格T,其中一些数据有 3 行。现在我添加了一个新列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 回答