Mysql
 sql >> Base de données >  >> RDS >> Mysql

condition dans les critères du framework yii php

Pour autant que je sache, vous ne pouvez pas référencer des alias dans un WHERE partie (lien de preuve ). Supprimez la ligne de condition et ajoutez ce qui suit :

$criteria->having = 'COUNT(tbl_abc.id) > 1';

MISE À JOUR

CActiveDataProvider accepte l'instance de recherche , vous aurez donc besoin d'une portée de modèle :

<?php
class Business extends CActiveRecord
{
  public function scopes()
  {
    return array(
      'hasSpcount' => array(
        'with' => array('reviewCount', 'category10', 'category20', 'category30', 'town'),
        'select' => 't.id,business,street,postalCode,contactNo,checkinCount,count(tbl_abc.id) as spcount',
        'join' => 'left join tbl_abc on t.id=tbl_abc.businessId',
        'group' => 't.id',
        'order' => 'spcount DESC',
        'having' => 'COUNT(tbl_abc.id) > 1',
      ),
    );
  }
}

// usage
$provider = new CActiveDataProvider(Business::model()->hasSpcount());

J'espère que ça marche