在Mysql的新列中插入值

时间:2013-02-04 19:38:09

标签: mysql sql-update

我有一个表T,其中一些数据有3行。现在我添加了一个新列c 现在我想为现有行插入值c 我是这样做的:

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

但它不是更新现有数据,而是插入新行 如何更新现有数据?
我不想指定where子句。我只是想像插入一样顺序添加值。

2 个答案:

答案 0 :(得分: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属性。

答案 1 :(得分:0)

您可以使用以下查询

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

依旧......

此外,如果要更新某些指定条件的数据,可以使用where condition,如下所示: ---这只是我数据库中使用的查询示例---

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

祝你好运!