gop*_*410 30 php mysql codeigniter codeigniter-2
我想在CI中组合AND OR mysql查询.我已经看过这个帖子:http://codeigniter.com/forums/viewthread/92818/.但他们没有在那里提供确切的解决方案.
如何使用严格的CI框架创建以下查询?(我可以在没有括号的情况下轻松创建查询,但它不是同一个查询.)
SELECT * FROM `Persons` WHERE
LastName='Svendson' AND Age="12" AND
(FirstName='Tove' OR FirstName='Ola' OR Gender="M" OR Country="India")
Run Code Online (Sandbox Code Playgroud)
PS:这只是一个示例查询,即使它没有意义也不建议在单个内部编写查询的整个OR部分where().
编辑:基本上我想要执行以下简单查询:
SELECT * FROM `table` WHERE field1='value1' AND (field2='value2' OR field3='value3')
Run Code Online (Sandbox Code Playgroud)
gad*_*lat 42
在CodeIgniter 3中有新方法group_start()和group_end(),它们完全用于此目的.
return $this->db
->where('LastName', 'Svendson');
->where('Age', 12);
->group_start()
->where('FirstName','Tove')
->or_where('FirstName','Ola')
->or_where('Gender','M')
->or_where('Country','India')
->group_end()
->get('Persons')
->result();
Run Code Online (Sandbox Code Playgroud)
cso*_*elo 41
这会有用吗?
$this->db->where('LastName', 'Svendson');
$this->db->where('Age', 12);
$this->db->where("(FirstName='Tove' OR FirstName='Ola' OR Gender='M' OR Country='India')", NULL, FALSE);
$query = $this->db->get('Persons');
return $query->result();
Run Code Online (Sandbox Code Playgroud)