MySQL:删除不仅更新的所有行

时间:2012-01-18 18:30:40

标签: php mysql forms

我们的想法是,在提交表单上循环后,不仅仅是从表单更新的所有行都将从数据库中删除。

有类似的东西有优雅的MySQL声明吗?

4 个答案:

答案 0 :(得分:2)

没有。存储PK并在删除后使用NOT IN。

答案 1 :(得分:1)

手前删除是危险的;如果用户关闭浏览器怎么办?存储主键的辅助是一种选择。最简单的就是:

1)将所有匹配的行日期设置为1970年1月1日。 2)提交表格,包括更新行中的当前时间。 3)删除旧日期的所有行。

效果很好。

答案 2 :(得分:0)

您可以在表格中添加时间戳列。更新的所有行都将具有当前时间戳。然后,您可以运行删除查询,选择所有行的时间戳小于更新表的大致时间。虽然不是一个完整的解决方案。

另一种方法是在更新时设置一些列值,然后删除列值未更新的行

答案 3 :(得分:0)

逆转情况怎么样?

更新tbl set this = that col ='something'; 从tbl删除col!='something';