mysql 在更新中嵌套 select

mysql nested select in update

早上好,

我在更新数据库时遇到问题。

这是我的订单table:

id | parent_id | type | paid

现在我需要更新所有已支付 parent_id 的订单。由于嵌套查询,我这样做有点麻烦。

我试过这样的东西

UPDATE orders
SET orders.paid = NOW()
WHERE (
    SELECT orders.parent_id
    FROM orders
    WHERE orders.id = orders.parent_id
)

但这并不能起到神奇的作用。 无法进入:/

1 | NULL | 8 | 2015-20-09 12:00:00
2 | 1    | 7 | 0000-00-00 00:00:00
3 | 1    | 7 | 0000-00-00 00:00:00
4 | NULL | 8 | 2015-18-09 12:00:00
5 | 4    | 7 | 0000-00-00 00:00:00

您可以使用 JOIN 进行更新,如

update orders o1
join orders o2 on o2.id = o1.parent_id
set o1.paid = now()
where o2.paid <> '0000-00-00 00:00:00'