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'
早上好,
我在更新数据库时遇到问题。
这是我的订单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'