我有一张名为db.yourcollection.find({ $where: function() { return .... } }, ...);
的表格。现在我想更新薪水低于50000 / - 的经理薪水。
emp(eid, ename, sal, mgr)
我该怎么办?
答案 0 :(得分:1)
我想更新薪水低于50000 /
的经理薪水
为什么需要SELECT
BTW。只需按
UPDATE
操作即可
update emp
set sal = 70000
where sal < 50000;
答案 1 :(得分:0)
你可以使用子查询来更新依赖于同一个表的数据,即:
UPDATE sometable set field = null
WHERE sometable.id in (SELECT * FROM (SELECT id from sometable) as a);
答案 2 :(得分:0)
在MySQL中,我更喜欢使用JOIN
这种类型的更新来使用双重嵌套的IN
表达式。 JOIN
允许优化器使用可用索引:
UPDATE emp mgr INNER JOIN
emp e
ON e.empno = mgr.mgr
SET mgr.sal = mgr.sal + 5000
WHERE mgr.sal < 50000;