Use of group by and having condition-

$collection = $this->collection->create();

$collection->addFieldToFilter('mobile_number', $mobile);

$collection->addFieldToSelect('mobile_number');

$collection->getSelect()->columns(['count' => new \Zend_Db_Expr('COUNT(mob)')])->where(

new \Zend_Db_Expr('TIMESTAMPDIFF(MINUTE,created_time,NOW()) <= 5')

)->group('mob')->having('count >= ?', 1);

Fetch first item only-


$collection = $this->collection->create()

->addFieldToFilter('mob', $mob)

->setOrder('id','DESC')

->setPageSize(1);

if (count($collection) == 1) {

$item = $collection->getFirstItem();

}