Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想做的是查询数据库并让它返回订单。这个整数被错误地插入为负数。所以我想取它的 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;