* SELECT [#we49152b]
$c->add(AuthorPeer::NAME, "taro"); // WHERE name = 'taro'
$c->add(AuthorPeer::NAME, "taro", Criteria::NOT_EQUAL); // WHERE name <> 'taro'
$authors = AuthorPeer::doSelect($c);
** Criteriaオペレーター [#f2dd502f]
- EQUAL (デフォルト)
- NOT_EQUAL
- GREATER_THAN
- LESS_THAN
- GREATER_EQUAL
- LESS_EQUAL
- LIKE
- NOT_LIKE
- IN
- CUSTOM
** JOIN [#o6639eff]
$c = new Criteria();
$c->addJoin(ItemPeer::CATETORY_ID, CategoryPeer::ID, Criteria::INNER_JOIN);
$itemList = ItemPeer::doSelect($c);
// SELECT * FROM item JOIN category ON item.category_id = category.id
*** LEFT OUTER JOIN 他 [#nb9d278f]
$c->addJoin(ItemPeer::CATETORY_ID, CategoryPeer::ID, 'LEFT OUTER JOIN');
** ORDER BY [#db6a9299]
$c->addAscendingOrderByColumn(ItemPeer::ID);
$c->addDescendingOrderByColumn(ItemPeer::ID);
※ 複数カラムによるソートは出来ない。
** GROUP BYしてCOUNT() [#q5f9eb15]
SELECT COUNT(category_id) FROM item GROUP BY category_id
$c->addSelectColumn('COUNT('.ItemPeer::CATEGORY_ID.')');
$c->addSelectColumn(ItemPeer::CATEGORY_ID);
$c->addGroupByColumn(ItemPeer::CATEGORY_ID) ;
$stmt = ItemPeer::doSelectStmt($c);
$rows = $stmt->fetchAll(PDO::FETCH_NUM);
foreach ($rows as $r) {
$count = $r[0];
$category_id = $r[1];
}
http://old.nabble.com/How-to-use-aggregate-functions--td18385850.html
** カラム名を指定して取得(設定) [#q40b6a7d]
$age = $row->getByName('age');
$row->setByName('age') = 18;
** 参考 [#dda1220f]
- http://www.propelorm.org/wiki/Documentation/1.4
- http://www.propelorm.org/wiki/Documentation/1.5