我们有一个由多种用户类型组成的社交网络,我们希望为所有客户帐户添加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
答案 0 :(得分:2)
如果没有更多信息,很难分辨,但看起来您在用户历史记录中为每笔交易添加了7.04美元。因此,每位用户都获得了{{1}}的信用。
您应该添加所需金额的新事务(INSERT)。这样,每个帐户都可以获得一次信用。
我当然希望你没有在你的生产数据库上这样做!