多くのユーザーを含む単一のテーブルがあります。そのテーブルには、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';
ボブが存在しない場合(最初のエントリ)、user_idは0(ゼロ)に設定されます。これが問題です。user_idを0ではなく1から開始する必要があります。