PDO插入SELECT和ON DUPLICATE KEY UPDATE

时间:2014-11-21 19:49:50

标签: mysql pdo

我使用下面的查询带有成功,只有当data_advertentie中存在ID的行时才会执行此查询。

INSERT INTO data_contactgegevens (ID_advertentie, telefoonnummer, website)
SELECT ID_advertentie, :telefoonnummer, :website FROM data_advertenties
WHERE ID_advertentie = :ID_advertentie AND unieke_hash_plaatsen = :hash_plaatsen

现在我想添加一个ON DUPLICATE KEY,所以如果data_contactgegeve中存在该行,那么该行将被更新。

请帮忙......

1 个答案:

答案 0 :(得分:1)

on duplicate key update声明的末尾添加insert部分。

示例

create table a(
  id int not null auto_increment primary key,
  x varchar(10)
);

create table b(
  id int not null auto_increment primary key,
  y varchar(10)
);

insert into a(x) values ('a'), ('b'), ('c');

insert into b(y) values ('e'), ('d');

insert into a
  select * from b
  on duplicate key update x = y;

结果:

select * from a;

| ID | X |
|----|---|
|  1 | e |
|  2 | d |
|  3 | c |

以下是此示例的SQL fiddle