我在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'
答案 0 :(得分: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可能具有不同的语法和可能性。
答案 1 :(得分:5)
您需要使用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;