0

我的数据库中有一个表,member在该表中称为“personID balance”字段&

如果用户 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 服务器版本相对应的手册,以在第 2 行的“balance-100.00, balance+100.00) WHERE personID IN (84587745, 98554130)”附近使用正确的语法

4

1 回答 1

3
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)
于 2013-11-08T23:18:24.387 回答