我想对数据库进行一次查询,以更新记录,但是如果此更改后的一条特定记录等于0,我想删除此行。可能吗?示例:
UPDATE `table` SET `row1`=`row1`+5, `row2`=`row2`+30 IF (row1 after the update == 0) DELETE WHERE `primarycolumn`=1
很明显,IF (row1 after the change == 0) DELETE
部分只是不起作用的伪代码-是否可以创建一个使其以这种方式工作的查询?
您不需要更新,然后检查是否为row1 = 0
。在这种情况下删除:
DELETE FROM `table`
WHERE `primarycolumn` = 1 AND `row1` + 5 = 0
如果条件失败,则不会删除任何内容。然后执行UPDATE
:
UPDATE `table`
SET `row1`= `row1`+ 5, `row2` = `row2` + 30
WHERE `primarycolumn` = 1
如果未删除该行,将对其进行更新,但是如果删除该行,则将不会进行任何更新。