MySQL 数据库更新 2 个值:1 个增加和 1 个减少


MySQL DB update 2 values: 1 increase & 1 decrease

我的数据库中有一个名为member表,该表中有字段"personID &余额"。

如果用户 1 的余额为 20.00,并希望将 10.00 发送给用户 2,那么减少用户 1 的余额并更新用户 2 的余额的最佳方法是什么?

任何帮助/建议都会很棒!

提前致谢

更新

法典:

 $accountfrom=$_POST[accountfrom];
 $accountto=$_POST[accountto];
 $amount=$_POST[amount]; 
$con = mysql_connect("localhost","cl49-XXX","XXX");
if (!$con) 
  {
   die('Could not connect: ' . mysql_error());
   }
mysql_select_db("cl49-XXX", $con)or die( "Unable to select database");

$result = mysql_query("UPDATE member
SET balance = IF(personID = $acountfrom, balance-$amount, balance+$amount)
WHERE personID IN ($accountfrom, $accountto)")
 or die(mysql_error());

结果:

"您的 SQL 语法有误;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 接近 ' 余额-100.00, 余额+100.00) 其中 PERSONID 在 (84587745 , 98554130)' 在第 2 行'

UPDATE member
SET balance = IF(personID = 1, balance-10, balance+10)
WHERE personID IN (1, 2)

要将转账限制为汇款人的余额:

UPDATE member m1
CROSS JOIN (SELECT LEAST(10, balance) transfer
      FROM member
      WHERE personID = 1) m2
SET m1.balance = IF(personID = 1, balance - transfer, balance + transfer)
WHERE personID in (1, 2)