【问题标题】:How display result by random order, doctrine2 queryBuilder如何按随机顺序显示结果,教义2 queryBuilder
【发布时间】:2015-01-06 22:15:47
【问题描述】:

我有实体 Travel,比如说它有 30 个条目:

1-
2- 
3-
4-
.
.
.
30-

我想随机选择6个实体,例如:2、14、7、25、16、1

我试过这段代码,但它可以工作,但结果总是按顺序 ASC (3,4,5,6,7,8,) 显示。

    public function getRandomTravelsFrontend()
    {
    $count = $this->createQueryBuilder('t')
         ->select('COUNT(t)')
         ->getQuery()
         ->getSingleScalarResult();

$qb = $this->createQueryBuilder('t')
        ->leftJoin('t.image', 'i')
        ->addSelect('i')
        ->Where('t.enabled = 1')
        ->setMaxResults(6)
        ->setFirstResult(rand(0, $count - 6));

        return $qb->getQuery()->getResult();
  }

如何按随机顺序显示结果?是否可以像这样选择 6 个实体:2、14、7、25、16、1?

【问题讨论】:

  • 该查询总共返回多少行(如果你不LIMIT它)?
  • 使用随机数生成器对行进行排序,参见:stackoverflow.com/questions/23112845/…
  • @zerkms ,你的意思是如果我删除 ->setMaxResults(6) 还是什么?如果我删除它,行数每次都会改变,有时是 2 行,有时是 7 行...

标签: php symfony doctrine-orm


【解决方案1】:

您可以在 SQL 选择语句中使用ORDER BY rand()

【讨论】:

  • hous 使用学说 queryBuilder 随机询问订单问题,没有使用 SQL 选择语句
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多