PostgreSQL更新数组中的所有行,同时将不在数组中的所有行更新为其他行

时间:2017-06-28 21:26:31

标签: postgresql

我的查询似乎有效:

UPDATE questions SET active=TRUE WHERE id=ANY ([1, 5, 7]);

但我还想将所有其他行设置为active=FALSE

基本上,我想做相当于运行这两行

UPDATE questions SET active=FALSE;
UPDATE questions SET active=TRUE WHERE id=ANY ([1, 5, 7]);

但是我想在可能的情况下在单个查询中完成此操作。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

使用条件作为布尔值来设置:

UPDATE questions SET active = (id = ANY(array[1, 5, 7]));
相关问题