gpt4 book ai didi

mysql - 从 votes 表中获取前两个 post_id

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

我有一个投票表,其中包含一个 post_id 列、一个 user_id 列和一个 vote 列。当有人为某个帖子投票时,会添加一行记录他们投票的帖子的 ID、他们的 user_id,并且 vote 列的值设置为 1 .我可以通过执行以下查询找到得票最多的帖子:

$toppostid = Vote::orderBy(DB::raw('sum(\'vote\')'))
->groupBy('post_id')
->find(1)
->pluck('post_id');

现在看来很明显,我可以通过将 find 方法设置为“2”来找到第二篇文章。但是,当我这样做时,它返回与原始函数相同的 post_id 。那么,给定这个表,我如何找到前两个帖子并返回它们?

最佳答案

find() 实际上是查找具有该 ID 的行,而不是像您假设的那样查找一行。您需要的是 take() 运算符,它充当限制。

尝试:

$toppostid = Vote::orderBy(DB::raw('sum(\'vote\')'))
->groupBy('post_id')
->take(2)
->pluck('post_id');

请参阅offset and limit section .

编辑:文档中也不清楚 pluck() 是否只采用第一行的 ID。您可能需要排除它才能获得所需的结果。

关于mysql - 从 votes 表中获取前两个 post_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24742744/

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