公共表中每个用户的顺序号字段

时间:2012-12-12 15:06:15

标签: php mysql sequential

我有一个用户表和一个目标表。用户可以输入目标。每个表都有一个自动递增的INT主键。现在我想在目标表中添加一个INT字段来表示用户的目标ID,这样如果UserA输入5个目标,这个新字段将包含1到5的值。对于UserB也是如此。 。用户N.我可以单独在MySQL端执行此操作,还是必须事先在我的PHP代码中提取数据以确定下一个数字。

1 个答案:

答案 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或某些功能...