聊天应用程序 - 列出页面加载时每个聊天的10条最新消息

时间:2015-11-24 15:03:43

标签: php mysql sql laravel laravel-5.1

我有一个聊天应用,在一个页面中有多个聊天。每次聊天我想在页面加载时首先加载最新的10条消息(然后在他们想要的时候延迟加载旧的消息)。

我想使用laravel提供的whereIn,这样我就可以在一个查询中获得多个聊天组。

我目前的代码是:

$chats = ChatMessage::whereIn('group_id', $group_ids)->orderBy('message_date', 'ASC')->take(10)->get();

但是我意识到take(10)只需要10.我想为表中的每个group_id取10个。

在laravel 5.1中执行此操作的最有效方法是什么?

1 个答案:

答案 0 :(得分:0)

除非您为每个聊天执行不同的查询,否则我认为您无法做到这一点。在mysql中,您需要使用变量来标记类别中的每一行row_number第一个

使用类似Row number per group in mysql之类的内容,然后对row_number <= 10

中的结果执行查询