好吧,很难得到一个标题,我希望我能把这个说清楚。
我有下表:
push_id int(11)
push_usr_id int(11)
push_account varchar(30)
pust_title varchar(128)
pust_contents varchar(254)
push_when datetime这些是将通过移动推送发送的任务的提醒。我有一个像这样每分钟运行一次的cron:
选择*从push_when push_when <= NOW()
这给了我总提醒,我必须推动。
问题是,一个用户可以同时拥有多个提醒,甚至可以有几十个提醒。我不想向用户设备(或设备)推送数十条消息,如果用户同时有多个提醒,我只想发送一条推送消息,上面写着“您有12项任务要做”之类的内容,而不是标准的任务提醒。
我知道显而易见的是对每个提醒进行另一个查询,以获得该用户id的提醒数量,但是,正如我所说的,这个东西每分钟运行一次。有没有一种没有几个查询就能做到这一点的方法?表结构还没有生产,我还可以做修改。
发布于 2017-03-17 21:48:25
我相信这里的答案是用小组的方式。在这种情况下,您需要按push_usr_id进行分组。如下所示:
select push_usr_id, count(*) as Push_Num
from yourtable
where push_when <= now()
group by push_usr_id;https://stackoverflow.com/questions/42867523
复制相似问题