Mysql-仅更新同一记录中的1行
我需要更新借方列中具有相同值的行&只有创建日期为2019-11-15的行 我有以下数据的事务表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
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'