我有一个包含字段foreign_key_id | 的表值1 | value2,如果我有foreign_key_id 和value1 匹配,我想更新value2。
如果foreign_key_id或value1不存在,我想插入一个新行。有没有比让 PHP 使用 select 语句然后分支到更新或插入更好的方法?
编辑: value2 可以与数据库中的值相同,因此我无法运行和更新,查看affected_rows是否为0,如果是则运行并插入。
尝试使用IF EXISTS
来决定是否执行UPDATE
or an 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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)