這對我的SQL-foo來說有點太棘手。如果一行已經存在相同的值,則增加一列
我需要做的是插入一個新行(其中包含3列),除非行已經存在,其中兩個值是相同的,如果它確實存在,我需要增加第三個值在那一行上。假設兩個值是關係(a,b),第三個值是關係的強度(隨着關係的每次發生都會增加)。
在此先感謝!
這對我的SQL-foo來說有點太棘手。如果一行已經存在相同的值,則增加一列
我需要做的是插入一個新行(其中包含3列),除非行已經存在,其中兩個值是相同的,如果它確實存在,我需要增加第三個值在那一行上。假設兩個值是關係(a,b),第三個值是關係的強度(隨着關係的每次發生都會增加)。
在此先感謝!
INSERT
INTO a_b (a, b, strength)
VALUES ($a, $b, 1)
ON DUPLICATE KEY
UPDATE strength = strength + 1
請確保您有一個UNIQUE (a, b)
或PRIMARY KEY (a, b)
約束在桌子上
我們可以假設(A,B)是唯一的這個表?特別是,我們可以在其上添加一個獨特的索引嗎? – tloach 2011-03-28 15:21:36
@tloach是的,(a,b)對於這個表總是唯一的,值B是唯一的(關係的第二個成員),值A可以出現多次。 – Filipe 2011-03-28 15:27:40