2013-03-31 113 views
0

我有這樣的一個表:插入/更新表

column1 - primary 
column2 - unique 
column3 

我的查詢行爲應該是這樣的:

  • 如果插入列1和列2是不同的
  • 更新欄3如果兩者匹配
  • 如果只有一個匹配,則什麼也不做

我已閱讀約INSERT ... ON DUPLICATE KEY UPDATE ...,但它似乎不符合我的第三個要求。在此先感謝您的幫助!

+0

你不能只有一個查詢做到這一點。使用兩個查詢可以嗎? –

+1

是的,我可以使用兩個查詢。 – Ithilion

回答

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