这是我的codeigniter查询
$this->db->like('nombre', $search); //$search= "some string"
$this->db->or_where_in('idAuto', $autos); //$autos= array('x','y','z');
$this->db->or_where_in('idMarca', $marcas); //$marcas= array('x','y','z');
$this->db->get('servicios');
这是生成的查询字符串
SELECT * FROM (`servicios`) WHERE `idAuto` IN ('2', '9', '16') AND `idMarca` IN ('1', '2', '3') AND `nombre` LIKE '%a%'
这就是我的预期:
SELECT * FROM (`servicios`) WHERE `idAuto` IN ('2', '9', '16') AND `idMarca` IN ('1', '2', '3') OR`nombre` LIKE '%a%'
我也测试了or_like并得到了相同的结果
$this->db->or_like('nombre', $search); //$search= "some string"
任何人都知道为什么会这样?
答案 0 :(得分:0)
尝试改变这个:
$this->db->like('nombre', $search);
到这个
$this->db->or_like('nombre', $search);
你可以试试这样的伎俩:
$this->db->or_where("`nombre` LIKE '%".$searcg."%'", NULL, FALSE);