0

次のようなテーブルがあります。

column1 - primary
column2 - unique
column3

私のクエリは次のように動作する必要があります。

  • column1 と column2 が異なる場合に挿入
  • 両方が一致する場合、column3 を更新します
  • 1 つしか一致しない場合は何もしない

について読みましINSERT ... ON DUPLICATE KEY UPDATE ...たが、3 回目のリクエストではうまくいかないようです。よろしくお願いします。

4

1 に答える 1

0

これは、両方が異なる場合は挿入し、両方が同じ場合は更新するようです。これは、挿入/更新される 3 つの列の値すべて (1,1,1) として "1" を使用します。

insert into yourtable 
select distinct 1,1,1
from yourtable
where column1 <> 1 and column2 <> 1;

update yourtable
set column3 = 1
where column1 = 1 and column2 = 1;

SQL フィドルのデモ

于 2013-03-31T01:21:32.630 に答える