私は以前のメインクエリの結果のみを注文したいと思います。Symfony Doctrine - クエリ後のOrderBy
私はトップ10の記事を見たいのですが、 "addedAt date" DESCで注文してください。
私は、このようなORDERBYあるいはaddOrderByとしての機能を承知しているが、それは私がここで必要なものではありませんか、私はそれを正しく実装していませんよ。
- 名:5件の記事でトップ2を取得する
例||ビュー: || addedAt:/04/2017
- 名前:b ||ビュー:10 || addedAt:17/04/2017
- 名前:c ||ビュー:50 || addedAt:15/04/2017
- 名前:d ||ビュー:25 || addedAt:12/04/2017
- 名前:e ||ビュー: || addedAt:/ 2017年、私が最初にほとんどのビューを抽出
/04:
- 条電子
- 条
そしてaddedAt日付DESCでorderedIt(最も最近):
- Articl EA
- 条電子
マイクエリ:
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
いいえ、私が欲しいものではありません。これにより、最新のレコードを取得し、2番目のorderByは、「addedAt」のようなレコードがない場合でも動作しません。 – Doshibu