0

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

4

1 回答 1

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

或者您可以创建一个触发器或一些功能......

于 2012-12-12T15:10:08.123 回答