在Mysql的新列中插入值

在Mysql的新列中插入值,mysql,sql-update,Mysql,Sql Update,我有一个表T,其中一些数据有3行。现在我添加了一个新列c 现在,我想在现有行的c中插入值。 我是这样做的: insert into T (c) values(1),(2),(3); 但它没有更新现有数据,而是插入了新行。 如何更新现有数据? 我不想指定where子句。我只想像insert那样按顺序添加值。您可以使用UPDATE语句为现有行的列赋值 UPDATE t SET t.c = 1 WHERE t.a = 1 ; 要为每个现有行分配唯一的顺序整数,您需要使用主键,或每行的唯一

我有一个表
T
,其中一些数据有3行。现在我添加了一个新列
c

现在,我想在现有行的
c
中插入值。
我是这样做的:

insert into T (c) values(1),(2),(3);
但它没有更新现有数据,而是插入了新行。
如何更新现有数据?

我不想指定where子句。我只想像insert那样按顺序添加值。

您可以使用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属性。

您可以使用下面的查询

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

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


祝你好运

在重复密钥更新时使用
。。。有很多像这样的问题SO@njk:如果插入中没有包含主键,这将如何工作?@mellamokb跳了车。但是如何在不指定where子句的情况下更新它们,我的意思是只添加serial wise.update t SET t.c=1,其中t.c为NULL@但是所有的t.c条目都是1这是新列的默认值,@spencer7593不,我不想使用自动增量,c的增量值只是一个例子。价值观可以是任何东西。
UPDATE City_Employee
SET City='Banglore' where (City='Delhi')