1

我在 SQL 中的表

CREATE TABLE Person(
  Person_id INT PRIMARYKEY
  Person_name NVARCHAR(250)
)

表中数据:

INSERT INTO Person VALUES(1,'Peter')

我想更新 SQL 中保留旧值的行。

UPDATE Person SET Person_name = 'Mary' WHERE Person_id = 1

该命令不起作用。我想要更新列 Person_name 后的值为 'Peter Mary'

4

2 回答 2

7

您需要使用 RDBMS 连接运算符将文字值Mary与列的值连接起来。Person_name但是,您没有指定您使用的 RDNMS。

这是标准方法:

UPDATE Person 
SET Person_name = Person_name || ' ' || 'Mary' 
WHERE Person_id = 1;

对于 SQL Server,请+像这样使用运算符:

UPDATE Person 
SET Person_name = Person_name + ' ' + 'Mary' 
WHERE Person_id = 1;
于 2012-12-28T08:16:54.387 回答
5

这是你要归档的吗?

更新前:

ID | Person_name
---+---------------
1  | Peter

更新后:

ID | Person_name
---+---------------
1  | Peter Mary

例如,如果您使用 MySQL,则可以使用以下方法:

UPDATE Person 
SET Person_name = CONCAT(Person_name, ' ', 'Mary') 
WHERE Person_id = 1

只需CONCAT一个空白和新值到当前值。

请不要忘记添加您正在使用的 RDBMS。其他 RDBMS 可能有不同的语法和可能性。

于 2012-12-28T08:16:20.880 回答