我的查询似乎有效:
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]);
但是我想在可能的情况下在单个查询中完成此操作。有没有办法做到这一点?
答案 0 :(得分:2)
使用条件作为布尔值来设置:
UPDATE questions SET active = (id = ANY(array[1, 5, 7]));