言語
サーバ関連
ツール
API
読み物
その他
[AD]
INSERT句で、ON duplicate key updateを利用することで実現できます。
INSERT INTO `テーブル名` (id, name) VALUES (1, 'りんご') ON duplicate KEY UPDATE id = 1 , name = 'ぱんだ';
ここでは次のようなテーブルを想定しています。 id列がプライマリとなりますので、idが重複するINSERT文の場合はUPDATEが実行されます。
mysql> desc test; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(64) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+
mysql> select * from test; +----+---------+ | id | name | +----+---------+ | 1 | foobar | | 2 | katsube | +----+---------+ mysql> INSERT INTO test (id, name) VALUES ( 1, "りんご") ON duplicate key update id=1, name="ぱんだ"; mysql> select * from test; +----+---------+ | id | name | +----+---------+ | 1 | ぱんだ | | 2 | katsube | +----+---------+