这是我的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"
有人知道为什么会这样吗?
尝试更改此:
$this->db->like('nombre', $search);
对此
$this->db->or_like('nombre', $search);
您可以尝试这样的技巧:
$this->db->or_where("`nombre` LIKE '%".$searcg."%'", NULL, FALSE);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句