我们现在有一张消息表 t_message,字段有 id(int),content(varchar),user_id(int),gtm_create(timestamp)。
我们这边是按照时间戳gmt_create来排序分页的.
语句如下:
第一页的sql:
select * from t_message order by gmt_create DESC limit 20;
第二页的sql:
select * from t_message where gmt_create<'第一页最后一条消息的时间戳' order by gmt_create DESC limit 20;
但是现在出现了一个问题,我们现在群发了40条消息,**时间戳都是相同的**
导致我们分页查询的时候第一页是正常的,直到第二页的时候其余20条数据就丢了。
我目前只能想到的办法就是对创建消息丢进消息队列里,一条一条的排队处理,这样有消息的时间戳就能保证不一样了!!
各位大佬还有什么好的解决办法呢??