Mysql
 sql >> Datenbank >  >> RDS >> Mysql

bedingung in kriterien in yii framework php

Soweit ich weiß, können Sie in einem WHERE keine Aliase referenzieren Teil (Beweislink ). ). Entfernen Sie die Bedingungszeile und fügen Sie Folgendes hinzu:

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

AKTUALISIEREN

CActiveDataProvider akzeptiert Finder-Instanz , also benötigen Sie einen Modellbereich:

<?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());

Hoffe das funktioniert