嵌套的 mysql 选择更新中

标签: sql MySQL
发布时间: 2017/1/9 22:15:19
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

早上好

我有一个问题,更新我的数据库。

这是我订单表︰

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

解决方法 1:

您可以使用联接为做更新的事情

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'
赞助商