通过Doctrine从数据库中获取最高ID

时间:2014-06-04 13:42:09

标签: symfony doctrine-orm

在Google上尝试了很多howto后,我仍然没有答案。

我想从具有最高ID(ai)的数据库中获取对象。 我知道这一定很简单,但我找不到解决办法。

在数据库中,我有实体 Syncs ,它们具有自动增量ID。 我需要那个(最新的)对象来检索一个DateTime的值。

(顺便说一下,通过Doctrine在Symfony中。)

1 个答案:

答案 0 :(得分:31)

使用MAX函数并获取单个标量结果:

$highest_id = $em->createQueryBuilder()
    ->select('MAX(e.id)')
    ->from('YourBundle:Entity', 'e')
    ->getQuery()
    ->getSingleScalarResult();

要获取最后一个对象,您可以执行以下操作:

$last_entity = $em->createQueryBuilder()
    ->select('e')
    ->from('YourBundle:Entity', 'e')
    ->orderBy('e.id', 'DESC')
    ->setMaxResults(1)
    ->getQuery()
    ->getOneOrNullResult();