如何根据条件pgsql更新特定的列名

how to update specific column name based on condition pgsql

我想根据 id 更新特定列的值。

这就是我正在尝试的

update my_table
    set my_date=now(),
        case _id
            when _id = id_1 then id_1_number = id_1_number + 1
            when _id = id_2 then id_2_number= id_2_number + 1
         where user_id = _user_id;

但这正在显示

ERROR:  syntax error at or near "case"
LINE 36:      case _id
              ^
SQL state: 42601
Character: 950

有什么方法可以根据条件更新特定列的值吗?

CASE表达式不能包含赋值,需要使用表达式的结果来赋值。每列都需要一个

update my_table
   set my_date = now(), 
       id_1_number = case when _id = id_1 then id_1_number + 1 else id_1_number end,
       id_2_number = case when _id = id_2 then id_2_number + 1 else id_2_number end
where user_id = _user_id;