我有一个用户表和一个目标表。用户可以输入目标。每个表都有一个自动递增的INT
主键。现在我想在目标表中添加一个INT
字段来表示用户的目标ID,这样如果UserA输入5个目标,这个新字段将包含1到5的值。对于UserB也是如此。 。用户N.我可以单独在MySQL端执行此操作,还是必须事先在我的PHP代码中提取数据以确定下一个数字。
答案 0 :(得分:0)
这样的查询怎么样:
INSERT INTO goals(col1, col2, col3, user_goal_id)
SELECT :val1, :val2, :val3, MAX(user_goal_id)+1
FROM goals
WHERE user_id = :user_id
GROUP BY user_id
?我想这是最简单的方法......
或者这可能也有效:
INSERT INTO goals(col1, col2, col3, user_goal_id)
SELECT :val1, :val2, :val3, user_goal_id+1
FROM goals
WHERE user_id = :user_id
ORDER BY user_goal_id DESC
LIMIT 1
或者您可以创建TRIGGER或某些功能...