Kohanaの3 ORM - 括弧付きここで条件をグループ化します
-
26-09-2019 - |
質問
私はこのようなORMを通じてクエリを実行しようとしています:
SELECT * from table where (fname like 'string%' or lname like 'string%')
AND (fname like 'string2%' or lname like 'string2%');
ここでは、これまで私が持っているものです。
$results = ORM::factory('profiles');
foreach ($strings as $string) {
$result->where('fname', 'like', "$string%");
$result->or_where('lname', 'like', "$string%");
}
しかし、これは括弧を考慮していません。任意のアイデア?
解決
答えを見つけます。
これは、Kohanaののwhere_open()とwhere_close()メソッドで行われます。
他のヒント
これが私のために罰金を働きます。
ORMコードサンプル
$musicslist = ORM::factory('user_music')
->where_open()
->where('title', 'like', '%' . $search . '%')
->or_where('album', 'like', '%' . $search . '%')
->or_where('artist', 'like', '%' . $search . '%')
->where_close()
->and_where('app_userid','=', $userid)
->find_all();
これは、SQLクエリ
を作成します。SELECT `user_musics`.* FROM `user_musics` WHERE (`title` LIKE '%as%' OR `album` LIKE '%as%' OR `artist` LIKE '%as%') AND `app_userid` = '21'
は、コメントに仕事に書式コードを取得できませんでした - 他の誰がそれを越えてくる場合にだけ、私は答えに簡単な例を追加しようと思いました。
$query = DB::select()
->from('some_table')
->where_open()
->where('column_one', '=', 1)
->or_where('column_two', '=', 2)
->where_close();
は、次のSQLを生成します
SELECT * FROM some_table
WHERE (column_one = 1 OR column_two = 2);
所属していません StackOverflow