我有以下Active Record查询.
//Example 1 public function info($school,$class,$student,$keyword) { $this->db->where('school.id',$school); $this->db->where('class.id',$class); $this->db->where('student.id',$student); $this->db->or_where('school.description',$keyword); $this->db->or_where('class.description',$keyword); $this->db->or_where('student.description',$keyword); return $this->db->get('info')->result(); }
我想对底部3“or_where”语句进行分组,以便它们包含在前3个“where”语句中.我想出的解决方案是……
//Example 2 public function info($school,$keyword) { $this->db->where('school.description',$keyword); $this->db->where('school.id',$student); $this->db->or_where('class.description',$student); $this->db->or_where('student.description',$keyword); $this->db->where('school.id',$student); return $this->db->get('info')->result(); }
这工作正常,但是有没有办法在不重复代码的情况下执行此操作?
我找到了解决方案!
public function info($school,$student); $this->db->where("(school.description LIKE '$keywords' OR class.description LIKE '$keywords' OR student.description LIKE '$keywords')"); return $this->db->get('info')->result(); }