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じゃないとできない。
しょうがないからサブクエリーでなんとかする。