我当前正在使用groupBy('conv_id')
将名为messages
的表中的行分组到会话中。
现在,所有返回的结果都将是一个唯一的conv_id
,尽管唯一的行不是最新的,而是创建的第一个。
使用orderBy('created_at', 'desc')
没有多大作用,我该如何查询最新的行?
我现在使用的查询:
$this->orderBy('created_at', 'desc')->where('receiver', '=', $id)->orWhere('sender', '=', $id)->groupBy('conv_id')->select('conv_id', 'created_at')->get()->toArray();
表格如下:
ID|SENDER|RECEIVER|UPDATED_AT|CREATED_AT|CONV_ID
我认为,如果你使用
Message::where('receiver', '=', $id)
->orWhere('sender', '=', $id)
->orderBy('created_at', 'desc')
->select('conv_id', 'created_at')->take(1)->get();
然后,这将根据where
子句匹配的created_at
返回最后一个条目/行。