使用Criteria::GREATER_EQUAL
代替Criteria::GREATER_THAN
编辑:啊,我现在看到您的问题,您应该添加第二个订购条件。也许使用主键作为第二个条件,这样你就得到了一致的排序,然后使用第二个排序来确定下一个项目。基本上,你需要select ... from ... where (item_date > mydate) or (item_date = mydate and id > myid) order by date, id asc
symfony 中的等价物。
编辑2:
$c = new Criteria();
// [item.item_date > $item->getItemDate()]
$crit0 = $c->getNewCriterion(ItemPeer::ITEM_DATE, $item->getItemDate(), Criteria::GREATER_THAN);
// [item.item_date = $item->getItemDate()]
$crit1 = $c->getNewCriterion(ItemPeer::ITEM_DATE, $item->getItemDate());
// [item.id > $item->id]
$crit2 = $c->getNewCriterion(ItemPeer::ID, $item->getId(), Criteria::GREATER_THAN);
// [item.item_date = $item->getItemDate()] *AND* [item.id > $item->getId()]
$crit1->addAnd($crit2);
// [item.item_date > $item->getItemDate()] *OR* [[item.item_date = $item->getItemDate()] AND [item.id > $item->getId()]]
$crit0->addOr($crit1);
$c->add($crit0);
$c->addAscendingOrderByColumn(ItemPeer::ITEM_DATE);
$c->addAscendingOrderByColumn(ItemPeer::ID);
$this->next = ItemPeer::doSelectOne($c);