我在更新查询方面遇到了一些问题。我的任务是更改数据示例新闻行中的状态:
id product_id import_id modified_at status
30470 30470 5 "2014-12-08 14:46:22" "NEW"
96091 30470 7 "2014-12-18 06:11:10" "CURRENT"
161203 30470 9 "2014-12-29 12:05:35" "CURRENT"
253973 30470 11 "2014-12-31 06:11:08" "CURRENT"
317167 30470 12 "2014-12-31 06:12:18" "CURRENT"
362304 30470 14 "2015-01-01 06:11:09" "CURRENT"
所以在我的数据示例中,我必须更新 ID 为 362304 的行并将状态设置为“NEW”。 当然,我必须对所有产品都这样做,但首先我想尝试这个例子。
最佳答案
jarlh的view的idea不错,就试了一下。 我创建了一个带有如下查询的 View 。
SELECT
s.id
,s.product_id
,s.import_id
,s.modified_at
,case when
(
SELECT max(tmp.id)
FROM stack28609281 tmp
WHERE tmp.product_id = s.product_id
) = s.id
then "NEW"
else "CURRENT"
end as status
FROM stack28609281 s
创建此 View 后,您可以更改应用程序中的查询以使用您的 View 而不是表。
关于sql - postgresql 更新最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609281/