按sql查询分组

时间:2010-02-18 00:19:36

标签: php sql mysql group-by

我有一堆ID。 我可以每天分配一次。

我需要查询我的数据库,看看他们是否有可用的ID(如果我没有在24小时内分发所有这些),如果有任何可用,请写一个新行到数据库说该ID已经分发。我还需要知道哪个用户在某个时间持有哪个ID。

我能想到这一点的唯一方法是创建两个表 - 一个active_ids(包含拥有特定ID的人现在)和一个id_records(包含谁拥有当前和过去的ID)。 然后我会说:

UPDATE active_ids SET user_id=xyz WHERE UNIX_TIMESTAMP(current_timestamp) - UNIX_TIMESTAMP(date) > 84600 LIMIT 1;

然后将另一条记录与id_records一起用于数据。

我有办法用一张桌子吗? 我正在使用PHP和MySQL。

谢谢!

2 个答案:

答案 0 :(得分:1)

当然,如果用户ID不是实际的主键,您可以只为所有user_id创建时间戳,然后使用基于时间的查询进行搜索以查看可用的内容。

答案 1 :(得分:0)

您可以拥有DATE类型的“日期”列和“user_id”列,并使用(day,user_id)的复合主键。

或者我怀疑可能是一个更好的主意:拥有一个真正唯一的ID,然后将非唯一ID称为“访问代码”,并具有复合唯一约束。