【问题标题】:groupby msql query按 sql 查询分组
【发布时间】:2010-02-18 00:19:36
【问题描述】:

我有一堆身份证。 我可以每天分配一次。

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

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

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

然后将另一条记录与数据一起发送到id_records

有没有办法用一张桌子做到这一点? 我正在使用 PHP 和 MySQL。

谢谢!

【问题讨论】:

    标签: php sql mysql group-by


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-16
        • 2019-01-07
        • 2010-12-12
        • 2015-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多