For Want Of A Better Word

【Cake】【PHP】検索条件の設定(複数条件とかLikeとか)

      2015/04/18

CakePHPのfindの検索条件の付け方ってなんか苦手だったけどちょとわかったので整理。

条件設定の基礎

複数の条件を設定する場合array(key->value);をポンポン追加していけば、それらはANDで検索される。
(条件配列をサンプルなど見ると、[AND] => array(array(), array()…)) という風に「AND」のindexをつくっているけど、配列が複数ある場合は自動でANDでつないでくれる模様。))

配列の構造としては、配列に「+=」で追加する

でもよいし

でもよい

ただし、同一の項目にANDとかOR条件を設定する場合、前者ではキー重複により設定できないので、後者での設定が楽と思われる。

で本題

AND検索

これでは

WHERE id = 1 AND name = ‘田中’

となる。

OR 検索

じゃあ OR検索はっていうと

とOR配列を作ってその中にぶち込めばよい。

AND と OR を共存させる

たとえば

WHERE name=”田中” AND (count =”1″OR count=”2″)

一つのフィールドに対して複数 AND

WHERE name LIKE ‘田’ AND name LIKE ‘中’

Betweenを使う

【参考】
CakePHPでMySQLのBETWEENを使う | 株式会社LIG

$params = array(‘conditions’ => array(‘id BETWEEN ? AND ?’ => array(’10’, ’20’)));

プレースホルダ的に使えるということ?

ふむーーー

 - cake, php

  関連記事

php-logo
PHPの日付計算

[日付比較] http://ameblo.jp/hyperdev/entry-1 …

cakephp_logo
Cake 2.X バーチャルフィールドでソート

ちょっと、悩んだのでメモ findにorder条件を設定するとき、下記のようにな …

apache-logo
All-In-One-EclipseとXDdebugでPHPをデバッグするメモ

趣旨 なんかデバッグがうまく動かない時があったので、設定を整理する。 参考サイト …

cakephp_logo
CakePHP クラス変数 var と publicの違い

Cakeの問題じゃなくてPHPの言語仕様の問題。 PHP4の頃はクラス変数をva …

apache-logo
HUPシグナル USR1シグナル

apache http://httpd.apache.org/docs/2.0/ …