【发布时间】:2020-12-24 20:31:31
【问题描述】:
我需要从数据库中获取随机记录。我是怎么做的:
$qb = $this->createQueryBuilder('article');
$totalRowsTable = $qb->select('count(article.id)')->getQuery()->getSingleScalarResult();
var_dump($totalRowsTable);
$random = (int)max(0, rand(1, $totalRowsTable));
var_dump($random);
$qb = $this->createQueryBuilder('article')
->andWhere("article.id IN (:id)")
->setParameter('id', $random)
->setMaxResult(1);
return $qb->getQuery()->getResult();
我不明白为什么函数返回零。如何以更正确的方式从数据库中获取随机记录?
【问题讨论】:
-
这能回答你的问题吗? Best way to select random rows PostgreSQL
-
条目数不一定与您的数据行的 ID 匹配。即您的行 ID 可以从 10000 开始,但您只有 50 个条目。那时你永远不会得到结果。
标签: php postgresql doctrine-orm