Mysql-仅更新同一记录中的1行

问题描述 投票:1回答:2

我需要更新借方列中具有相同值的行,而仅更新具有create_date ASC的行基本上是2019-11-15

我正在使用具有以下数据的交易表

table name - tbl_transactions

id     client_id     user_id    debit    add_date
1      9991101       1          7.69     2019-11-15
2      9991101       1          7.69     2019-11-30
3      9991101       2          28.9     2019-11-15
4      9991101       2          11.49    2019-11-30

现在我只想更新在“借方”列和日期“ 2019-11-15”中具有相同值的记录

这意味着将仅更新id-1。

 id     client_id     user_id    debit    add_date
 1      999110100     1          7.69     2019-11-15

我们可以在client_id字段中添加额外的00,我已经尝试使用下面的sql,但似乎无法正常工作

 UPDATE tbl_transactions SET client_id=999110100 WHERE id IN ( SELECT * FROM tbl_transactions WHERE client_id=9991101 AND DATE(create_date)='2019-11-15' GROUP BY user_id, debit HAVING COUNT(*) = 2 )

提前感谢。

mysql
2个回答
0
投票
根据您对问题的了解,您可以尝试执行类似的查询

UPDATE `tbl_transactions` SET `COLUMN_NAME` = DESIRED_VALUE WHERE `debit` = 7.69 AND `add_date` = '2019-11-15'

您只需要在上面的查询中将COLUMN_NAME替换为所需的列名,并在其前面输入相应的值。让我知道这是否是您要实现的目标或其他目标。

0
投票
您需要从子查询中选择id,而不是*

UPDATE `tbl_transactions` SET `COLUMN_NAME` = DESIRED_VALUE WHERE id IN ( SELECT id FROM tbl_transactions WHERE client_id=9991101 AND DATE(create_date)='2019-11-15' GROUP BY user_id, debit HAVING COUNT(*) > 2 )

© www.soinside.com 2019 - 2024. All rights reserved.