插入/更新表有两个索引

时间:2013-03-31 01:01:19

标签: mysql

我有一张像这样的表:

column1 - primary
column2 - unique
column3

我的查询应该是这样的:

  • 如果column1和column2不同,则插入
  • 如果两者匹配则更新列3
  • 如果只有一个匹配则不执行任何操作

我已经阅读了INSERT ... ON DUPLICATE KEY UPDATE ...,但我的第三次请求似乎并不顺利。在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果两者都不同,这似乎有效,如果两者相同则更新。这使用“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 Fiddle Demo