havingでaliasは使えない

↓な感じでhavingにaliasを使おうとしたけどエラーになった。

SELECT MAX(IF(xxx='abc', yyy, 0)) as x1 FROM user GROUP BY id having x1 > 2;

havingを使う場合、こんな感じで使う。

<?php # vender/propel/util/Criteria.php
  $crit = new Criteria();
  $c = $crit->getNewCriterion(BasePeer::ID, 5, Criteria::LESS_THAN);
  $crit->addHaving($c);

エラーの箇所を見ると、

<?php
class Criterion  {
  public function __construct(Criteria $outer, $column, $value, $comparison = null)
  {
    list($this->table, $this->column) = explode('.', $column);
    $this->value = $value;
    $this->comparison = ($comparison === null ? Criteria::EQUAL : $comparison);
    $this->init($outer);
  }
}

explodeでエラー。table.columnじゃないとできない。

しょうがないからサブクエリーでなんとかする。