MySQL Update Column +1?

Cor*_*ory 21 mysql sql aggregate-functions sql-update

我想知道将列更新为+1的最简单方法是什么?我将根据用户提交新帖子的时间更新类别的帖子数.

谢谢.

OMG*_*ies 40

最简单的方法是存储计数,依赖于COUNT聚合函数来反映数据库中的值:

   SELECT c.category_name,
          COUNT(p.post_id) AS num_posts
     FROM CATEGORY c
LEFT JOIN POSTS p ON p.category_id = c.category_id
Run Code Online (Sandbox Code Playgroud)

您可以创建一个视图来容纳上面提到的查询,这样您就可以像查询表一样查询视图...

但如果您已设置存储号码,请使用:

UPDATE CATEGORY
   SET count = count + 1
 WHERE category_id = ?
Run Code Online (Sandbox Code Playgroud)

..替换"?" 具有适当的价值.

  • 如果不是问题,+1可以很好地回答问题 (4认同)
  • 谢谢.最初我想确定一个类别中的帖子数量,就是检查post表格中匹配该类别的cat_id,然后将它们添加起来.认为这可能比直接写入该表消耗资源或效率低. (2认同)

Mic*_*zon 27

你可以做:

UPDATE categories SET posts = posts + 1 WHERE category_id = 42;


Vin*_*nie 8

怎么样:

update table
set columnname = columnname + 1
where id = <some id>
Run Code Online (Sandbox Code Playgroud)


Koo*_*bin 5

update post set count = count + 1 where id = 101
Run Code Online (Sandbox Code Playgroud)