MySQL只更新(update)查询出数据的第一条或最后一条

菠萝饭 38 2021-12-13

最近在做项目功能时,要求只更新根据创建时间查询出的数据集的最后一条。使用一般update语句全都更新。最后查阅网上及自己总结如下:

更新第一条:

UPDATE `user_pay_all` SET result='2', cdes='订购成功' WHERE uid like 'test' ORDER BY createtime LIMIT 1

更新最后一条:(就是降序)

UPDATE `user_pay_all` SET result='2', cdes='订购成功' WHERE uid like 'test' ORDER BY createtime DESC LIMIT 1

当然,也可以先Select查询出最后一条再通过id更新字段,但不推荐。


# 实际问题