我有一个字段为Foreign_key_id的表| value1 | value2,如果我有对Foreign_key_id和value1的匹配项,我想更新value2。
如果foreign_key_id或value1不存在,我想插入一个新行。有没有比PHP使用select语句然后分支到更新或插入更好的方法呢?
编辑:value2可以与数据库中的值相同,因此我无法运行和更新,请查看受影响的行是否为0,如果是,请运行并插入。
尝试使用IF EXISTS确定是否执行UPDATE或INSERT语句。您可以在一个PHP语句/查询中执行此操作。
IF EXISTS
UPDATE
INSERT
IF EXISTS(SELECT 1 FROM Mytable WHERE foreign_key_id = f1 AND value1 = v1) BEGIN UPDATE Mytable SET value2 = v2 WHERE foreign_key_id = f1 AND value1 = v1; END ELSE BEGIN INSERT INTO Mytable(foreign_key_id,value1,value2) VALUES (f1,v1,v2); END IF;