2012-02-03 59 views
1

比方說,我有two字段ab如果存在兩個相同的字段,則插入其他更新

現在我們假設我想寫一個查詢,如果a = 100 AND b = 120會更新,否則它會創建新的字段。

而且ab必須是唯一的對方,我的意思是,它可以是兩個a等於100或兩個b等於200,但不能像

a多個字段= 100b = 120,我希望你明白我的意思。

+0

我很抱歉,但我真的不明白你問這裏... – Marco 2012-02-03 23:06:15

+0

領域都行不同的..你可以弄清楚你是什麼意思? – Blorgbeard 2012-02-03 23:06:22

+0

你是什麼意思與_「否則它會創造新的領域」_?如果滿足條件,是否要更新一行,如果不滿足則添加新行?那麼,對於我所知道的一個查詢來說這是不可能的。 – Marco 2012-02-03 23:08:22

回答

4

如果您對(a,b)組合有UNIQUE約束,則可以使用此功能的INSERT ... ON DUPLICATE KEY UPDATE ...語法。例子:

INSERT INTO TableX 
    (a, b, c, d, e) 
VALUES 
    (100, 200, 1, 2, 3) 
ON DUPLICATE KEY UPDATE 
    c = VALUES(c) 
, d = VALUES(d) 
, e = VALUES(e) 

INSERT INTO TableX 
    (a, b, c, d, e) 
VALUES 
    (100, 200, 1, 7, 20) 
ON DUPLICATE KEY UPDATE 
    c = c + 1 
, d = d + 1 
, e = e + 1 
相關問題