相关疑难解决方法(0)

MySql INSERT MAX()+ 1的问题

我有一个包含许多用户的表.在该表中,我有一个名为user_id(INT)的列,我想为每个人单独增加.user_id必须从1开始

我准备了一个简单的例子:

Showing all names
+--------------+-----------------------+
| user_id      | name                  |
+--------------+-----------------------+
| 1            | Bob                   |
| 1            | Marry                 |
| 2            | Bob                   |
| 1            | John                  |
| 3            | Bob                   |
| 2            | Marry                 |
+--------------+-----------------------+


Showing only where name = Bob
+--------------+-----------------------+
| user_id      | name                  |
+--------------+-----------------------+
| 1            | Bob                   |
| 2            | Bob                   |
| 3            | Bob                   |
+--------------+-----------------------+
Run Code Online (Sandbox Code Playgroud)

以下查询将执行此操作,但只有在表中已存在"Bob"时才会起作用...

INSERT INTO users(user_id, name) SELECT(SELECT MAX(user_id)+1 from …
Run Code Online (Sandbox Code Playgroud)

mysql sql insert increment max

12
推荐指数
2
解决办法
3万
查看次数

MySQL像计数器一样由多个用户更新同一行

我正在尝试为用户帖子增加一个喜欢的计数器。我的MySQL表中的帖子包含“喜欢”字段,该字段显示此特定帖子有多少喜欢的对象。现在,如果多个用户同时喜欢同一条帖子,将会发生什么?我认为这会导致冲突或无法正确递增?如何避免这种情况,我是否需要锁定行或拥有哪些选项?

我的查询可能看起来像这样:

UPDATE posts
    SET likes = likes + 1,
    WHERE id = some_value
Run Code Online (Sandbox Code Playgroud)

当用户不喜欢帖子时,也应该递减->喜欢-1

谢谢你的帮助!

php mysql

5
推荐指数
1
解决办法
1848
查看次数

标签 统计

mysql ×2

increment ×1

insert ×1

max ×1

php ×1

sql ×1