0

我想做的是查询数据库并让它返回订单。这个整数被错误地插入为负数。所以我想取它的 abs() 并将其重新插入为正数。我不认为 MySQL 可以做到这一点,但这就是我编写查询的方式。我正在寻找替代方法。(如果这不可能,我将简单地使用 PHP)。谢谢你。

编辑:这应该更新不止一行。

UPDATE `users` SET `orders` = (SELECT abs(orders)
FROM `users` WHERE count1 = 5) WHERE count1 = 5;
4

1 回答 1

0

不幸的是,MySQL 有一个愚蠢的限制,即被更新的表可能不会出现在同一语句的子选择中。

但我不明白你为什么需要子选择:

UPDATE users 
    SET orders = abs(orders)
WHERE count1 = 5;

应该做你想做的。

或者,如果您想将所有负值转换为正值:

UPDATE users 
    SET orders = abs(orders)
WHERE orders < 0;
于 2012-08-08T16:39:43.960 回答