后,我想订先前的主查询的唯一结果。Symfony的学说 - 排序依据查询
我想那么10个最看的文章由“addedAt日期” DESC下令。
我所知道的功能,例如排序依据甚至addOrderBy,但它不是我所需要的这里还是我没有正确地实现它。
实例让高层2月5篇:
- 名称:一个|| views: || addedAt:/04/2017年
- 名称:B ||意见:10 || addedAt:17/04/2017
- 名称:C || views:50 || addedAt:15/04/2017
- 名:d ||观点:25 || addedAt:2017年12月4日
- 姓名:E || views: || addedAt:/04/2017年
我第一次提取最观点:
- E条
- 第一个
然后通过addedAt日期DESC orderedIt(最最近):
- Articl EA
- E条
我的查询:
public function findMostViewed($limit=10, $asArray=false)
{
$qb = $this->createQueryBuilder('n')
->orderBy('n.nbViews', 'DESC')
//->addOrderBy('n.addedAt', 'DESC')
->getQuery()
->setMaxResults($limit);
return ($asArray) ? $qb->getResult(Query::HYDRATE_ARRAY) : $qb->getResult();
}
如果我知道如何做一个preSelectQuery它将有可能解决这个问题...
我认为一个SQL查询:
SELECT ...
FROM ...
WHERE id IN(SELECT id FROM News ORDER BY nbViews DESC LIMIT 10)
ORDER BY addedAt DESC
不,这不是我想要的。有了这个,我会得到最新的记录,如果没有记录的“addedAt”类似,那么第二个orderBy将不起作用。 – Doshibu