てきとう

ワーワーゆうとります

 今一度findの機能を洗濯し申すよー!

**find($conditions = NULL, $fields = array ( ), $order = NULL, $recursive = NULL)

  • conditions(all / first / count / neighbors / list / threaded)
    • all…該当データ全部
    • first…該当データの最初の1コ
    • count…該当データの個数
    • neighbors…該当データと、前後のデータ。一等前後賞。
    • threaded…親子関係のデータをごっそり
・LIKE
$conditions = array("Hoge.title LIKE" => "%てびき%");
$conditions = array("Hoge.title LIKE ?" => array("%てびき%"));
・AND
$conditions = array("Hoge.id" => array(1,2,3,4,5));
$conditions = array("AND" => array("Hoge.id" => array(1, 2, 3)), array("Hoge.title LIKE" => "%てびき%"));
・OR
$conditions = array("Hoge.Politika" => array("OR" => array("beer","die"));
・BETWEEN
$conditions = array("Hoge.date BETWEEN ? AND ?" => array("2008-1-1", "2009-1-1"));
・NOT
$conditions = array("Hoge.title <>" => "マシマロ");
$conditions = array("Hoge.title NOT" => "マシマロ");
・DISTINCT
# conditionsじゃなくてfieldsに指定。
$fields = array('Hoge.id DISTINCT');

# !countでdistinc指定する時の注意
# fieldはstringで指定
$fields = 'DISTINCT Hoge.id';

$this->Hoge->find(null, "COUNT(DISTINCT Hoge.id) AS 'count'");

**sql($sql)
なんだかんだよく使う。直にSQLが書きたくなった時はこいつでいい。

つづきはまたこんどだ。