我需要帮助解决从表中随机选择的问题。请求确实返回随机行,但每次返回相同的结果,没有任何变化。这是代码。有什么帮助吗?
$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()));
答案 0 :(得分:0)
实际上这不是处理随机元素的最佳方法。我宁愿得到所有可能的id并从结果表中选择一个随机id。那可能会更好。
或其他方式:设置1个结果的限制并在起始元素上添加rand。
$query
->setFirstResult($randomNumber)
->setMaxResults(1);