代码之家  ›  专栏  ›  技术社区  ›  Souvik Ray

如何将postgres中选定行的列值增加1?

  •  0
  • Souvik Ray  · 技术社区  · 6 年前

    我有一个包含列的postgres表 id , name item counter .现在我想增加 柜台 价值依据 1 对于用户所属的那些行。

    我试着这样做,但我得到语法错误

    UPDATE Items set counter = counter + 1 WHERE users = 'Tony';
    

    这将增加 柜台 价值依据 对于用户指定的所有行 托尼 属于。类似的

    最初的

    id | name | item    | counter
    1  | Tony  | car    | 1
    2  | Tony  | bike   | 1
    3  | Ray   | car    | 1
    4  | Ray   | bike   | 1
    5  | Tony  | cycle  | 1
    

    最终的

    id | name | item    | counter
    1  | Tony  | car    | 2
    2  | Tony  | bike   | 2
    3  | Ray   | car    | 1
    4  | Ray   | bike   | 1
    5  | Tony  | cycle  | 2
    

    2 回复  |  直到 6 年前
        1
  •  2
  •   S-Man    6 年前

    UPDATE 查询包含 users 而不是 name .

    demo: db<>fiddle

    UPDATE Items set counter = counter + 1 WHERE name = 'Tony';
    
        2
  •  1
  •   Eugene    6 年前

    可能列名错了。试试这个:

    UPDATE Items set counter = counter + 1 WHERE name= 'Tony';