class ImageRepository extends EntityRepository
{
public function findAllNewestByVotes()
{
return $this->getEntityManager()
->createQuery(
'SELECT p FROM GabrielUploadBundle:Image p WHERE p.upvotes > 50 ORDER BY p.createdAt ASC')
->getResult();
}
}
我只需要来自GabrielUploadBundle的10到20张随机图片:图片中upvotes超过50,此时它只按日期排序(createdAt)。 我知道这可以用RAND()来解决,但不推荐用于大型表。
答案 0 :(得分:0)
我会在以下四个步骤中执行此操作:
选择投票数超过50的所有记录的ID
随机播放数组
将数组切割为您需要的大小
使用您使用IN子句