对于一个消息传送系统,我试图标记为雇员适当to_del和from_del字段2.合并两个查询到一个在同一个表(相同列/不同行)
下面是前雇员2删除消息:
company_id | to | from | to_del | from_del
1 4 2 0 0
1 2 4 0 0
这里是工作人员2删除邮件后:
company_id | to | from | to_del | from_del
1 4 2 0 1
1 2 4 1 0
我要运行2个查询这个工作:
UPDATE messages SET from_del='1' WHERE company_id=1 AND from=2
UPDATE messages SET to_del='1' WHERE company_id=1 AND to=2
有没有办法将这两个查询合并为一个更高效的查询?例如:
UPDATE messages SET from_del='1',to_del='1' WHERE company_id=1 AND (from=2 OR to=2)
这个单个查询的问题是,它将所有4个删除字段标记为'1'。关于如何获得一个高效的查询来处理上述2个查询的任何想法?
感谢您的输入,但你是什么意思“你更新不列需要这样''? – Maverick 2012-02-02 16:49:01
这意味着如果你只需要更新'from_del',你也会更新'to_del',不管你喜不喜欢,如果它不符合你的条件,你更新它为相同的值,但你仍然更新它。 – Ben 2012-02-02 16:56:26
是从其他from_del和其他to_del?你认为运行上面的两个查询或使用case部分更有效吗? – Maverick 2012-02-02 17:04:03