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

この記事のシェア数

5

まっちー
まっちー / 2008年 プログラマ

プログラマのまっちーです。酒が大好きです。ある一定量のお酒を飲むと壊れたレディオモードに入り、同じことを繰り返す癖があります。宜しくお願いいたします。