gpt4 book ai didi

mysql - Symfony,OneToMany 属性的 Doctrine 顺序

转载 作者:行者123 更新时间:2023-11-30 22:54:53 26 4
gpt4 key购买 nike

我在创建 SQL 查询时遇到问题。

我有 2 个实体,YouTubeVideo 和 Views。

YouTubeVideo 可以有很多观看次数,观看次数被视为观看次数的“包”,属于 ViewsCount 属性。

现在,假设我有 1 个具有 3 个 View 的 YouTubeVideo。 View [0].ViewsCount = 200;Views[1].ViewsCount = 100;Views[2].ViewsCount = 300;总数为 600。

我将如何构建查询,查询所有 youtubevideos 并根据它们的总观看次数对它们进行排序?

是否可以在 SQL 中执行此数学运算?

Atm 它看起来像这样:

    $repository = $this->em->getRepository('YTScraperBundle:YouTubeVideo');
$query = $repository->createQueryBuilder('p');
$query->setMaxResults(self::PR_PAGE);
$query->setFirstResult($firstResult);
$query = $query->getQuery();
$youTubeVideos = $query->getResult();

// foreach ($youTubeVideos as $youTubeVideo ... get all views add them etc.

然后我正在使用 usort:

    usort($youTubeVideos, array('YT\ScraperBundle\Entity\YouTubeVideo', "compareViews"));

但这一点也不理想,因为我对查询使用了限制。

最佳答案

您可以尝试使用 DQL 而不是注释。

SELECT y FROM YoutubeVideos y JOIN y.views v GROUP BY y.id ORDER BY SUM(v.viewCount)

关于mysql - Symfony,OneToMany 属性的 Doctrine 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26836760/

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