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 に答える