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

Mysql-仅更新同一记录中的1行,mysql,Mysql,我需要更新借方列中具有相同值的行&只有创建日期为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

我需要更新借方列中具有相同值的行&只有创建日期为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

我们可以在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 )

提前谢谢。

根据我对您的问题的理解,您可以尝试以下查询

UPDATE
  `tbl_transactions`
SET
  `COLUMN_NAME` = DESIRED_VALUE
WHERE
  `debit` = 7.69
AND
  `add_date` = '2019-11-15'
您只需将上述查询中的列_NAME替换为所需的列名及其前面的相应值。如果这就是你想要达到的目标或其他目标,一定要让我知道

Mysql无法在FROM子句中指定更新的目标表

您需要使用子查询在临时表中选择并更新它们

您可以使用CONCAT将您的客户id命名为00

根据您的帖子,您需要在创建日期ASC之前使用相同的借方和订单

但是,mysql不能只在组中排序字段,所以您可以这样做:

使现代化 `tbl_交易` 设置 `客户机id`=客户机id“00” 我在哪里 从中选择id 选择t2.id,t2.user\u id t2.created\u date FROM 选择id、用户id、最小创建日期作为创建日期 来自tbl_交易 其中,客户_id=9991101 按用户id分组,借方 计数*>=2 AS t1 内部连接tbl_事务作为t2 在t1.user_id=t2.user_id和t1.debit=t2.debit和t2.client_id=9991101和t1.created_date=t2.created_date上 按t2.user\u id分组 作为临时表
您需要描述哪些字段需要更新,在新值中设置什么,等等。您应该先尝试一下。@STEVE001,您的MySQL版本是什么?您的意思是从tbl_事务中选择id,其中client_id=9991101和DATEcreate_date='2019-11-15'按用户id分组,借方计数*>2此sql未返回结果?是的,我尝试了从tbl_事务中选择sql id,其中客户端id=9991101,并按用户id创建DATEcreate_date='2019-11-15'组,借方计数*>1
UPDATE
  `tbl_transactions`
SET
  `COLUMN_NAME` = DESIRED_VALUE
WHERE
  `debit` = 7.69
AND
  `add_date` = '2019-11-15'