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'])));
なんか、ブログ見てもらえて、色々指摘とかもらえるのはとてもうれしい!
もっと勉強して、アウトプットしていこうって思えました!