Php Kohana 3 ORM-带括号的分组条件

Php Kohana 3 ORM-带括号的分组条件,php,orm,kohana,kohana-3,kohana-orm,Php,Orm,Kohana,Kohana 3,Kohana Orm,我试图通过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->

我试图通过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()方法完成的。

无法在注释中使用代码格式-我只是想在答案中添加一个简单的示例,以防其他人遇到它:

$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);
这对我来说很好

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'

对不起,德克斯特,我无意中否决了你的答案,现在我无法撤销否决票……如果你在《科哈纳2》中偶然发现这个问题,请参见我的答案: