Postgres结合更新查询

时间:2016-05-27 17:28:54

标签: postgresql sql-update

我有一个简单的更新查询:

UPDATE
  FOO
SET
  bar = true
WHERE
  id in (1,2,3....)

我如何将其与完全相反的

结合起来
UPDATE
  FOO
SET
  bar = false
WHERE
  id NOT in (1,2,3....)

3 个答案:

答案 0 :(得分:2)

只需将in子句放入set部分:

update foo
   set bar = (id in (1,2,3, ...));

答案 1 :(得分:1)

您的预期输出可以通过CASE语句实现:

UPDATE FOO SET bar = ( CASE WHEN id IN (1, 2, 3....) THEN true
                            WHEN id NOT IN (1, 2, 3....) THEN false
                            ELSE NULL END )

答案 2 :(得分:1)

您可以在Postgres中使用UPDATE查询中的条件语句:Conditional statements in Postgres

UPDATE声明可以写在下面的表格中:

UPDATE
  FOO
SET
  bar = CASE WHEN id IN (1, 2, 3...)
  THEN true
  ELSE false
  END