我有一个聊天应用程序与多个聊天在一个页面。每次聊天,我都希望在页面加载时先加载最新的10条消息(如果老消息需要的话,延迟加载)。
我想使用laravel提供的whereIn,这样我就可以在一个查询中获得多个聊天组。
我目前的代码是:
$chats = ChatMessage::whereIn('group_id', $group_ids)->orderBy('message_date', 'ASC')->take(10)->get();但是我意识到take(10)只需要10,我想对表中的每一个group_id取10。
在Laravel5.1中,最有效的方法是什么?
发布于 2015-11-24 15:07:40
我认为,除非您对每次聊天执行不同的查询,否则您无法做到这一点。在mysql中,需要使用变量首先用row_number标记类别中的每一行。
使用类似于此Row number per group in mysql的内容,然后对row_number <= 10的结果执行查询
https://stackoverflow.com/questions/33897027
复制相似问题