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 に答える