cakephpでSQL文作成


・特定の期間より小さい日のデータを取得する方法


例によるとこんな感じで取得できるみたいですが、


// $id より大きなidを持つレコードを取得
$list = $this->findAll(array('id' => '> ' . $id));



$data = $this->Reminder->findAll(array('Reminder.tweettime'=> '<'.$today));



ちょっとおかしいSQLができる↓
作成されたSQL
SELECT `Reminder`.`id`, `Reminder`.`userid`, `Reminder`.`memo`, `Reminder`.`tweettime`, `Reminder`.`option` FROM `reminders` AS `Reminder` WHERE `Reminder`.`tweettime` = '<2010-05-05 01:43:52'


$data = $this->Reminder->findAll(array('Reminder.tweettime < \''.$today.'\'' ));


意図したSQLができる↓
作成されたSQL
SELECT `Reminder`.`id`, `Reminder`.`userid`, `Reminder`.`memo`, `Reminder`.`tweettime`, `Reminder`.`option` FROM `reminders` AS `Reminder` WHERE `Reminder`.`tweettime` < '2010-05-05 01:45:06'


よくわかんない。



追記)5/5

twitter@fool4rootさんが、

$this->find('all', array('conditions' => array('id <' => $id)); とすればいいのかなと。
findAllは昔の名残だから推奨されないので。

って教えてくださいました!




で、なおしてみた。

$data = $this->Reminder->findAll(array('Reminder.tweettime < \''.$today.'\'' ));

$data = $this->Reminder->find('all', array('conditions' => array('Reminder.tweettime < \''.$today.'\'')));


$a = $this->User->findAll(array('User.id'=>$v['Reminder']['userid']));

$a = $this->User->find('all', array('conditions' => array('User.id' => $v['Reminder']['userid'])));


なんか、ブログ見てもらえて、色々指摘とかもらえるのはとてもうれしい!
もっと勉強して、アウトプットしていこうって思えました!