这个问题在这里已经有答案了:
mysql:用另一个表的count更新表(2个答案)
11个月前关门了。
table:
喜欢:userid,posted
用户图片:posted,username,images,likes
所有like都存储在表“likes”中,但是“user\u images”中的所有like对于所有用户都是4。有没有一种方法可以运行一个查询来更新“user\u images”表中的所有likes,以对应“likes”表中的数量。
例如,postid(5)在“likes”中有10个likes(10个userid),因此“user\u images”(5)的postid的值应该是10个likes,而不是4个。
我希望这不会太混乱。
2条答案
按热度按时间oymdgrw71#
您可以尝试(使用事务):
查看用户图像表中的结果,检查更新是否正确:
如果一切正常,请提交事务:
但是,如果出现问题,请执行回滚:
和评论尝试一种新的方法。
qnyhuwrf2#
为什么要储存一个总数?您只需在一个查询中获得任意给定帖子的最新赞数,然后完全去掉该列。
所有职位的计数:
结果:
或者,如果你只需要一个特定帖子的计数,只需要一个
WHERE
子句。结果:
此方法将使您不必每次插入新的like时都更新总数,并且在不从数据库中删除所有like的情况下,您也不会意外地将所有总数设置为不正确的值。