我有一个聊天应用,在一个页面中有多个聊天。每次聊天我想在页面加载时首先加载最新的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中执行此操作的最有效方法是什么?
答案 0 :(得分:0)
除非您为每个聊天执行不同的查询,否则我认为您无法做到这一点。在mysql中,您需要使用变量来标记类别中的每一行row_number
第一个
使用类似Row number per group in mysql之类的内容,然后对row_number <= 10