2012-02-03 51 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 
相关问题