0

我想只使用 SQL 导入一些值(1 列)。我写的查询看起来应该可以工作,但是当我在 phpMyAdmin 中输入它时,它只是重置了 SQL 表单(我必须第一次重新编写它)并且没有执行任何插入。此外,没有错误消息。

目标表 ( contact) 具有与临时表相同的结构,但有一些额外的字段。

create temporary table import(
id int,
postalcode varchar(255)
);

insert into import values
(1,'city1'),
(2,'city2'),
...
;

insert into contact(city) (
    select postalcode from import 
    inner join contact on contact.id=import.id
)
where contact.id=import.id

我添加了该inner join子句,因为查询在该子句中找不到该contact.idwhere。对于这种情况,这是正确的方法吗?

4

1 回答 1

0

正确的解决方案原来是:

insert into contact (id,city)(select * from import)
on duplicate key update city=values(city);

查看 SQL Fiddle

这太棒了,将节省大量编写后端脚本以进行导入的时间。

于 2013-01-26T16:15:27.123 回答