Postgres:UPDATE一个布尔列,将该列中的所有其他布尔值设置为false

时间:2016-10-07 05:43:51

标签: sql postgresql

我想知道我是否可以在一个查询中执行此操作

用例:Twitter固定推文。您最多可以获得一条固定的推文,并设置一条新的固定推文,取消设置所有其他以前固定的推文。

有什么想法吗?

1 个答案:

答案 0 :(得分:7)

UPDATE tweets
SET pinned = NOT pinned
WHERE id = 1234 OR pinned = TRUE;

或者要格外小心

WHERE (id = 1234 AND pinned = FALSE) OR (pinned = TRUE AND id <> 1234)