###前提・実現したいこと
下記のようなSQL文を作成したいと考えています。
where ( (Maps.prefecture_name = :c0 AND Maps.city_name like :c1) OR (Maps.prefecture_name = :c2 AND Maps.city_name like :c3) OR (Maps.prefecture_name = :c5 AND Maps.city_name like :c5) )
###発生している問題・エラーメッセージ
上記のようなSQLができない、for文を使うと文法が悪いのかエラーになる。
また、下記のようなSQL文になる。
WHERE ( Maps.prefecture_name = :c0 AND Maps.city_name like :c1 AND (Maps.prefecture_name = :c2 OR Maps.city_name like :c3 ) )
###該当のソースコード
php
1for文を使ったコード 2 $query = $this->Maps->find() 3 ->where( 4 for ($i = 0; $i <= count($prefecture); $i++) { 5 [ 6 'OR' =>[ 7 'Maps.prefecture_name' => $prefecture[$i], 8 'Maps.city_name LIKE' => $city[$i] 9 ] 10 ]} 11 ); 12別々に書いたコード 13 $this->set(compact('query')); 14 $query = $this->Maps->find() 15 ->where( 16 [ 17 'Maps.prefecture_name' => $prefecture[0], 18 'Maps.city_name LIKE' => $city[0], 19 'OR' =>[ 20 'Maps.prefecture_name' => $prefecture[1], 21 'Maps.city_name LIKE' => $city[1] 22 ] 23 ] 24 );
###補足情報(言語/FW/ツール等のバージョンなど)
CakePHP7
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/03 04:18