0

存在する場合は更新するクエリを作成するか、some know value存在しない場合はレジスタを作成する必要があります。

以下のようなバリエーションをいくつか試しましたが、うまくいきません。

これどうやってするの?

試行:

UPDATE OR INSERT
    mytable
SET
    attribute1 = 'value1',
    attribute2 = 'value2',
    attribute3 = 'some known value'
WHERE
    attribute3 = 'some known value'
4

3 に答える 3

1

@GarouDanは、次のようなコードの下で挿入クエリを使用せずに更新クエリのみを渡します..最初に、attribute3 = 'some known value'を持つレコードがあります..そのために、このように使用します..

declare xattribute text;
select attribute3 into xsttribute where attribute3 = 'some known value'
if found
UPDATE  mytable
SET
    attribute1 = 'value1',
    attribute2 = 'value2',
    attribute3 = 'some known value'
WHERE
    attribute3 = 'some known value'
else
 insert into mytable(attribute1 ,attribute3 ,attribute3 ) values (value1,value2,some known value)
于 2013-05-15T17:45:19.313 に答える
0

おそらく、MySQL コマンド REPLACE が探しているものです。例:

replace into cars (color,crashed) values ('black',0);
于 2013-05-15T17:40:32.330 に答える
0

mysql の INSERT...ON DUPLICATE KEY UPDATE 構文を使用する必要があります。

http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html

于 2013-05-15T18:42:33.433 に答える