Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

combining mysql AND OR queries in Codeigniter

I want to combine AND OR mysql queries in CI. I have already seen this thread: http://codeigniter.com/forums/viewthread/92818/. But they don't provide the exact solution there.

How do I create the following query using strictly the CI framework? (I can create the query easily without the brackets but then it is not the same query.)

SELECT * FROM `Persons` WHERE LastName='Svendson' AND Age="12" AND (FirstName='Tove' OR FirstName='Ola' OR Gender="M" OR Country="India")  

P.S.: This is just a sample query even if it makes no sense & Do not suggest writing the entire OR part of the query inside a single where().

EDIT: Basically I want the implementation of the following simple query:

SELECT * FROM `table` WHERE field1='value1' AND (field2='value2' OR field3='value3')  
like image 418
gopi1410 Avatar asked Jun 15 '12 18:06

gopi1410


1 Answers

In CodeIgniter 3 there are new methods group_start() and group_end() which serve exactly for this purpose.

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(); 
like image 153
gadelat Avatar answered Sep 24 '22 09:09

gadelat