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