CakePHPでDBからレコードを取得したり逆に入力したりする際にはfindやsaveというお手軽なメソッドがあるのでとても便利。
だけど、結構複雑なクエリーを投げなきゃいけないとなると、どう書けば良いのか分からなくなる場合も意外とあったりする。findの条件指定のときとか。BETWEENとかLIKEなんかも、一度知ってしまえばたいしたことはないのだけど、知らないとわりと悩む。少なくとも自分は悩みました。
どうしても困ったら$this->query()で直接SQL文を書いちゃえば良いのだろうけど、WHERE句でBETWEENを使う場合の記述でちょっと面白い書き方を発見したので、ここではそれで頑張ってみる。
じゃあたとえば、idが10から20の間のレコードを取得するとしましょう。
$params = array('conditions' => array('id BETWEEN ? AND ?' => array('10', '20')));
$this->Model->find('all', $params);
こんな感じでOK。DBのデータである日付の区間を取りたい(10月1日から30日までとか)みたいなのが意外と出てきたりしてたので、これはぜひ知っておきたかった。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。