我有一个表字段foreign_key_id | value1 | value2,如果我匹配foreign_key_id和value1,我想更新value2.
如果foreign_key_id或value1不存在,我想插入一个新行.有没有比使用PHP语句然后分支到更新或插入更好的方法呢?
编辑:value2可以是与数据库中相同的值,因此我无法运行和更新,查看affected_rows是否为0,如果是,则运行并插入.
尝试使用a IF EXISTS来确定是执行UPDATE还是INSERT声明.您可以在一个PHP语句/查询中执行此操作.
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;
Run Code Online (Sandbox Code Playgroud)