繁体   English   中英

有没有一种方法可以同时更新和选择(返回多行)同一张表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM