CakePHPのfind条件に「OR」を指定する方法
2015/01/11
SQLで「OR」を使った条件式なんてのはささっと書けるのですが、CakePHPのfindの場合はどうするんだっけか?
ただそれだけの内容ですが、実際、ちょっとだけハマったので忘備録としてポスト。
topicsテーブルのsubjetカラムに「あ」、contentカラムに「い」を含んでいるものを抽出する条件として作成してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$conditions = array( 'Topic.publish =' => 1, 'AND' => array( 'OR' => array( array( 'Topic.subject like' => 'あ' ), array( 'Topic.content like' => 'い' ), ), ), ); |
このように OR の内容を、配列で指定すればOK。
親配列(OR自体)のキーを OR とするのがポイント。
これで、以下の様なSQLとなります。
1 |
SELECT ? FROM Topic WHERE Topic.publish = 1 AND ((Topic.subject like 'あ') OR (Topic.content like 'い')) |
[tgAmazonItemLookup asin="4774153249" related="1"]
[tgAmazonItemLookup asin="B005JHKT3M" related="1"]