我有一个包含许多用户的表。在该表中,我有一个名为 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 |
+--------------+-----------------------+
以下查询将执行此操作,但仅当表中已存在“Bob”时才有效...
INSERT INTO users(user_id, name) SELECT(SELECT MAX(user_id)+1 from users where
name='Bob'), 'Bob';
如果 Bob 不存在(第一个条目),则 user_id 设置为 0(零)。这就是问题。我需要 user_id 从 1 而不是 0 开始。