gpt4 book ai didi

MySQL 到 Eloquent 查询

转载 作者:行者123 更新时间:2023-11-29 19:11:53 24 4
gpt4 key购买 nike

我在查询时遇到了一些问题。我试图从表中获取每个“类别”的最新记录,但我不知道如何在 Laravel 中编写查询。

我在 MySQL 中运行了该查询,但翻译它时运气不佳。

MySQL 查询如下所示:

SELECT *
FROM messages
WHERE id IN (
SELECT MAX(id)
FROM messages
GROUP BY conversation_id
);

我在 Laravel 中尝试了类似的方法,但它似乎不起作用:

return self::where(function($query){
$query->select(max(['id']))
->from('messages')
->groupBy('conversation_id');
})
->get();

最佳答案

(代表 OP 发布)

感谢 AlexM 的评论,我明白了。

return self::whereIn('id', function($query){
$query->select(max(['id']))
->from('messages')
->orderBy('created_at', 'desc')
->groupBy('conversation_id');
})
->get();

这是我的第一个解决方案,但效果不太好。它按预期选择了两条记录,但不是最后一条。

然后我想出了使用 selectRaw 而不是 select 的想法,这完美地解决了我的问题。对于任何感兴趣的人来说,最终的查询如下所示:

return self::whereIn('id', function($query){
$query->selectRaw('max(id)')
->from('messages')
->orderBy('created_at', 'desc')
->groupBy('conversation_id');
})
->get();

关于MySQL 到 Eloquent 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43018548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com