我们有一个由多种用户类型组成的社交网络,我们希望向所有客户帐户添加 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/