我有一个用例,在这个用例中,我只需要根据不同的条件更新一条记录,问题是这些条件检索了许多记录,
所以update语句每次都会更新所有记录,

UPDATE t_wallet_log wallet_log
LEFT JOIN t_end_user enduser
ON enduser.f_id=wallet_log.f_end_user_id
set wallet_log.f_txn_status = 'successful'
WHERE enduser.f_ref_number='ugY-227'
AND wallet_log.f_amount=1000
AND wallet_log.f_txn_kind='cr'

我几乎试过我知道的每件事,但没有运气

最佳答案

请尝试下面的查询。

UPDATE wallet_log set wallet_log.f_txn_status = 'successful' where id=(
select p1.id from ( select wallet_log.id from t_wallet_log wallet_log
LEFT JOIN t_end_user enduser
ON enduser.f_id=wallet_log.f_end_user_id
WHERE enduser.f_ref_number='ugY-227'
AND wallet_log.f_amount=1000
AND wallet_log.f_txn_kind='cr' order by id desc limit 1)p1);

这对你有帮助。

关于mysql - MySQL只更新一条记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48660322/

10-11 03:22