在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')