【问题标题】:how to update specific column name based on condition pgsql如何根据条件pgsql更新特定的列名
【发布时间】:2021-10-27 21:50:14
【问题描述】:

我想根据 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

有没有办法根据条件更新特定列的值?

【问题讨论】:

    标签: sql postgresql sql-update


    【解决方案1】:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 2020-02-25
      • 1970-01-01
      相关资源
      最近更新 更多