1

これに似たテーブルがあります...

+-------------+-------------+
| Field       | Type        |
+-------------+-------------+
| var1        | varchar(15) |
| var2        | varchar(25) |
| var3        | int(1)      |
+-------------+-------------+

問題は、3 つの変数を挿入できるようにする必要があることですが、これは var1 と var2 がまだテーブルにない場合に限られます。var1 と var2 が既にテーブルにある場合は、var3 を更新する必要があります。

たとえば

INSERT INTO table (var1, var2, var3) VALUES('0','1','2')

3つの値を挿入しますが、

INSERT INTO table (var1, var2, var3) VALUES('0','1','1')

('0','1','2') を ('0','1','1') に更新します。

重要なことは、var1 と var2 が存在する場合、var3 が異なる重複したエントリが入力されないことです。

私は他のいくつかの質問を見回しましたが、それらのほとんどは IGNORE を推奨しているようで、複数の重複をチェックしているため、うまくいかないと思います。

4

1 に答える 1

3

まず、(var1,var2)組み合わせて設定PRIMARY KEY

ALTER TABLE table ADD PRIMARY KEY(var1,var2)

次に使用しますINSERT ON DUPLICATE UPDATE

INSERT INTO table (var1, var2, var3) VALUES ('0','1','2') ON DUPLICATE KEY UPDATE var3 = '2'
于 2013-01-03T00:54:40.830 に答える