php - MySQL 由多个用户更新同一行,如计数器

标签 php mysql

<分区>

我正在尝试增加用户帖子的点赞计数器。我的 MySQL 表中的一个帖子有一个字段 likes 显示这个特定帖子有多少喜欢。现在如果多个用户同时喜欢同一个帖子会发生什么?我认为这会导致冲突或无法正确增加?我怎样才能避免这种情况,我是否需要锁定该行或我有哪些选项?

我的查询看起来像这样:

UPDATE posts
    SET likes = likes + 1,
    WHERE id = some_value

同样,当用户不喜欢某个帖子时,这应该递减 --> 喜欢 -1

感谢您的帮助!

最佳答案

这是一个足够简单的查询来运行:

UPDATE mytable SET mycolumn = mycolumn + 1;

这样即使您有多个人同时点赞,查询也不会同时运行,因此您最终会得到正确的数字。

诸如此类的查询在几分之一秒内运行,因此您无需担心多个用户点击它们,除非您有数百万用户,否则您将遇到很多与查询有关的问题.

关于php - MySQL 由多个用户更新同一行,如计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24017616/

相关文章:

mysql - 选择大小写优先结果

mysql - 与 EF6、MySQL、MVC 错误的一对零/一关系

mysql - 在mysql中将纪元数转换为人类可读的日期

php - 为什么在 PHP 的 laravel 模型类中使用静态方法?

javascript - 无法将 $_GET 回显到 JQUERY UI 模式对话框中

mysql - 如何在 MySQL 中返回数据透视表输出?

php - 将 MySQL 嵌套集连接到另一个表

php - 产品 ID 未存储在数据库中

javascript - 使用js脚本的PHP重定向无法正常工作

javascript - 如何使用Ajax将图像存储到文件夹并存储数据库路径?