[英]Is there a way to both update and select (returning multiple rows) from the same table at the same time?
我想做的是查询数据库,并让它返回订单。 该整数被错误地插入为负数。 因此,我想将其abs()并重新插入为正值。 我认为MySQL无法做到这一点,但这就是我编写查询的方式。 我正在寻找替代方法。 (如果不可能的话,我将只使用PHP)。 谢谢。
编辑方式:应该更新多行。
UPDATE `users` SET `orders` = (SELECT abs(orders)
FROM `users` WHERE count1 = 5) WHERE count1 = 5;
不幸的是,MySQL具有这种愚蠢的限制,即正在更新的表可能不会出现在同一语句的子选择中。
但是我完全不知道为什么您需要子选择:
UPDATE users
SET orders = abs(orders)
WHERE count1 = 5;
应该做你想做的。
或者,如果您要将所有负值都变成正值:
UPDATE users
SET orders = abs(orders)
WHERE orders < 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.