我有一个表T
,其中一些数据有3行。现在我添加了一个新列c
现在我想为现有行插入值c
我是这样做的:
insert into T (c) values(1),(2),(3);
但它不是更新现有数据,而是插入新行
如何更新现有数据?
我不想指定where子句。我只是想像插入一样顺序添加值。
答案 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')
祝你好运!