Como recuperar o próximo item em uma lista de registros do MySQL?

Eu estou trabalhando com o symfony usando Propel tentando criar funcionalidade para os botões voltar e next:

$c = new Criteria();

$c->add(CartPeer::CATEGORY, $category);
$c->add(CartPeer::ITEM_ID, $item->getItemId(), Criteria::GREATER_THAN);
$c->addAscendingOrderByColumn(CartPeer::ITEM_NAME);

$this->next = CartPeer::doSelectOne($c);

Agora, isso funciona bem se os identificadores do item estiverem em ordem crescente, mas geralmente esse não é o caso.

Como posso modificar este código para que ele selecione o item imediatamente após o atual$item na lista de registros retornados em vez de selecionar um com o próximo ID numérico ascendente?

Exemplo:

Record: 0 | ItemID: 5
Record: 1 | ItemID: 2
Record: 2 | ItemID: 7 <-- $item
Record: 3 | ItemID: 4 <-- I want this to be $next
Record: 4 | ItemID: 9

questionAnswers(1)

yourAnswerToTheQuestion