Criteria para pegar emails duplicados

Visto que temos uma tabela clientes, com o campo email e queremos pegar os emails duplicados e listá-los.


  $c = new Criteria();
  $c->clearSelectColumns();
  $c->addSelectColumn(ClientePeer::EMAIL);
  $c->addGroupByColumn(ClientePeer::EMAIL);
  $c->addAsColumn(‘numduplicados’, ‘COUNT(’.ClientePeer::EMAIL.‘)’);
  $c>addHaving($c>getNewCriterion(ClientePeer::EMAIL, COUNT>1’, Criteria::CUSTOM));
  $c->addDescendingOrderByColumn(COUNT);
  $rs = ClientePeer::doSelectRS($c);

  while ($rs->next()) {

     $duplicados[$rs>get(1)] = $rs>get(2);
  }

  • Pronto, você tem um array $duplicados[“email”] = quantidade