MySQL只更新一条记录

时间:2018-02-07 09:36:10

标签: mysql join sql-update

我有一个用例,我需要根据不同的条件只更新一条记录,问题是那些条件检索了很多记录, 所以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' 

我几乎尝试了所有我知道但没有运气的事情

1 个答案:

答案 0 :(得分:2)

请尝试以下查询。

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);

这会对你有帮助。