我有一个包含许多用户的表.在该表中,我有一个名为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表中的帖子包含“喜欢”字段,该字段显示此特定帖子有多少喜欢的对象。现在,如果多个用户同时喜欢同一条帖子,将会发生什么?我认为这会导致冲突或无法正确递增?如何避免这种情况,我是否需要锁定行或拥有哪些选项?
我的查询可能看起来像这样:
UPDATE posts
SET likes = likes + 1,
WHERE id = some_value
Run Code Online (Sandbox Code Playgroud)
当用户不喜欢帖子时,也应该递减->喜欢-1
谢谢你的帮助!