从表中随机选择

时间:2014-08-23 17:44:30

标签: php symfony select random

我需要帮助解决从表中随机选择的问题。请求确实返回随机行,但每次返回相同的结果,没有任何变化。这是代码。有什么帮助吗?

$count = $this->createQueryBuilder('u')
    ->select('COUNT(u)')
    ->from('BPQuizzBundle:Question','b')
    ->getQuery()
    ->getSingleScalarResult();

$qb2=$this->_em->createQueryBuilder();
$qb2->select('b')
    ->from('BPQuizzBundle:Question','b')
    ->where('b.id <=:rand')
    ->join('b.module','l', 'WITH', 'l.id = :id')
    ->setParameters(array('rand' => rand(1,$count),'id' => $module->getId()));

1 个答案:

答案 0 :(得分:0)

实际上这不是处理随机元素的最佳方法。我宁愿得到所有可能的id并从结果表中选择一个随机id。那可能会更好。

或其他方式:设置1个结果的限制并在起始元素上添加rand。

$query
    ->setFirstResult($randomNumber)
    ->setMaxResults(1);