2016-02-05 71 views
0

我们有一个CMS网站,用户可以在其中注册帐户并向帐户添加资金。我不想让你知道细节,但客户存入的钱存储在他们的“在线钱包”中,他们可以使用这笔钱在我们的网站上购买产品。MySQL - 如何在所有用户的帐户中插入值

我想给每个用户$ 5.00。

我知道如何手动插入$ 5.00到单个用户的记录,但我不知道我可以为所有用户做..

下面是一条记录SQL代码(我加了5 $用户ID 14013):

INSERT INTO `database`.`databasetable` (
`iBalanceId` , 
`iUserId` , 
`eUserType` , 
`eBalType` , 
`fCreditAmount` , 
`fDebitAmount` , 
`dEntryDate` , 
`dValueDate` , 
`vDescritption` , 
`vBalTypeCode` , 
`iRefId` , 
`vRefTypeCode` , 
`iAddedUserId` , 
`eAddedUserType` , 
`vProcessDescription` , 
`eBalanceStatus` 
) 
VALUES (
'19499', '14013', 'C', 'C', '5.00', '0.00', '2016-02-04 21:11:54', '2016-02-04', 'manual deposit', 'D', '0', 'CR', '0', 'S', 'manual deposit', 'A' 
); 

19499是记录数

14013被接受$ 5美元的

我怎么能修改此SQL代码不再年轻时尚的用户ID它的所有用户$ 5.00?

非常感谢您的帮助。

+0

是否备案号是自动递增? –

+1

使用alter table记录来设置你的列fCreditAmount = fCreditAmount + 5.00像这样,而不使用任何用户标识,如果你愿意,也可以添加条件。 – C2486

+0

你有单独的用户表吗?你如何拿出创纪录的数字? –

回答

0

我相信你已经有用户了,只是想为每个用户增加5.00,所以sql查询就会成功。

UPDATE `database`.`databasetable` SET fCreditAmount = fCreditAmount + 5.00; 

如果你已经增加一个,所以你可以除了一个。

UPDATE `database`.`databasetable` SET fCreditAmount = fCreditAmount + 5.00 WHERE iUserId != 14013 ; 
+0

谢谢,我会试试这个。但是我忘了提到另一件事。 eUserType需要是'C'。例如,我们有几种用户类型('A','O','C','G','AF','N'),我需要记录所有eUserType'C'。 – Gary

+0

在哪里可以添加这样的条件_where eUserType ='C'_。只是不提供用户ID来更新所有用户。 – C2486

0

从用户表插入多条记录到databasetable。

我假设iBalanceId是自动增量字段!

INSERT INTO `database`.`databasetable` (
`iUserId` , 
`eUserType` , 
`eBalType` , 
`fCreditAmount` , 
`fDebitAmount` , 
`dEntryDate` , 
`dValueDate` , 
`vDescritption` , 
`vBalTypeCode` , 
`iRefId` , 
`vRefTypeCode` , 
`iAddedUserId` , 
`eAddedUserType` , 
`vProcessDescription` , 
`eBalanceStatus` 
) 
(
    SELECT id as iUserId, 
    'C' as eUserType, 
    'C' as eBalType, 
    '5.00' as fCreditAmount, 
    '0.00' as fDebitAmount, 
    '2016-02-04 21:11:54' as dEntryDate, 
    '2016-02-04' as dValueDate, 
    'manual deposit' as vDescritption, 
    'D' as vBalTypeCode, 
    '0' as iRefId, 
    'CR' as vRefTypeCode, 
    '0' as iAddedUserId, 
    'S' as eAddedUserType, 
    'manual deposit' as vProcessDescription, 
    'A' as eBalanceStatus 
    FROM user 
) 
0

如果已经在你的表中的记录,那么你需要的所有行的UPDATE查询:

UPDATE databasename SET fCreditAmount = fCreditAmount + 5.00 WHERE iUserId <> ''