エンジニア採用セミナー
エンジニア採用セミナー
2009.12.03

CakePHPでMySQLのBETWEENを使う

まっちー

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日までとか)みたいなのが意外と出てきたりしてたので、これはぜひ知っておきたかった。

ちなみに参考サイトはこちら => http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1262&forum=6&post_id=2605