gpt4 book ai didi

mysql - 一组 ID 的单个更新最后一行条目 - MySQL

转载 作者:行者123 更新时间:2023-11-30 23:21:51 27 4
gpt4 key购买 nike

我想使用 IN(1,2,3) 对历史表中的一组 ID 执行更新。当然,表中同一 id 的条目不止一个。对于每个 id,只应在最后一个历史条目中执行更新。

有没有办法通过一次更新来执行此操作?

UPDATE table SET fk_something = 123 WHERE id_something IN (1,2,3) AND ...?

提前致谢。

最佳答案

如果您有一个列来确定最后日期是什么,那么您可以使用带有子查询的 UPDATE,类似于这样:

update yourtable t1
inner join
(
select max(updated_at) MaxDate, id_something
from yourtable
group by id_something
) t2
on t1.id_something = t2.id_something
and t1.updated_at = t2.MaxDate
set t1.fk_something = 123
where t1.id_something IN (1,2,3)

参见 SQL Fiddle with Demo .

这使用子查询获取每个 id_somethingmax(updated_at) 值。然后将这些行连接到您的表中,以确保您更新最新的行。

关于mysql - 一组 ID 的单个更新最后一行条目 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15157470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com