从表中删除列表中不存在id的记录,保持现有状态并插入不在表

时间:2015-04-29 03:06:04

标签: java mysql sql

我一直在想办法做主题建议: 假设给出了一个整数数组列表,例如1,3,5,并在如下表中我有一些记录存在:

categoryid     userid
1              2
2              2
3              2

哪个 categoryid userid 一起构成主键。并且使用id = 2的用户给出的数组列表,我想删除列表中没有的categoryid的记录,这是2.然后保留那些在列表中,这是3,最后插入那些不在表格,即5.操作后的表格如下所示:

categoryid     userid
1              2
3              2
5              2

除了简单地删除userid = 2的所有记录,并根据数组列表插入新记录之外,还有更好的方法吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

正如您所说,您希望执行两项主要操作DELETEINSERT。您不能在一个查询中执行这些操作,因此您至少需要两个查询。另一方面,您可以编写用于删除的sql查询,并以一种智能方式插入所有删除仅在一个查询中完成(通过对不同的值使用OR)并在一个批处理查询中插入。