php - 为所有用户的账户充值

标签 php mysql database

我们有一个由多种用户类型组成的社交网络,我们希望向所有客户帐户添加 7.04 美元,以庆祝 7 月 4 日美国节日。

我使用了以下 SQL 命令:

    UPDATE `database`.`databasename` SET fCreditAmount = fCreditAmount + 7.04 WHERE eUserType = 'C'

但是,当我这样做时,它似乎会多次信用。因此,它不是只给每个客户 7.04 美元,而是给一些客户 1000 美元的信用。

有人知道为什么会出现这种情况吗?

我们的“余额”表结构是:

iBalanceId (autoincrement)
iUserId
eUserType
eBalType
fCreditAmount
fDebitAmount
dEntryDate
dValueDate
vDescritption
vBalTypeCode
iRefId
vRefTypeCode
iAddedUserId
eAddedUserType
vProcessDescription 
eBalanceStatus

最佳答案

如果没有更多信息,很难判断,但看起来您正在为用户历史记录中的每笔交易添加 7.04 美元。因此,每个用户都会获得 7.04 * numberOfTransactions 信用。

您应该添加所需金额的新交易(插入)。这样,每个帐户将获得一次积分。

我当然希望您没有在生产数据库上执行此操作!

关于php - 为所有用户的账户充值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165538/

相关文章:

php - 无法在 mysql_query() 中使用变量?

php - Laravel:如何验证所需的子数组项是否存在?

java - java连接mysql数据库出错

php - PDO 类和 PDOStatement 类之间的关系

php - 检查 Laravel 集合中是否存在记录

mysql - sqlite 触发器对整个数据库起作用还是仅对更改的行起作用

mysql - 如何从消息表中选择最后一条文本

sql - oracle双向分层查询

node.js - MongoDB:如何在连续查询中检索大量文档

java - 如何在java中运行MySQL脚本?