Codeigniter - 使用or_where_in和like一样,会产生意想不到的结果

时间:2014-03-02 17:44:33

标签: php codeigniter

这是我的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"

任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

尝试改变这个:

$this->db->like('nombre', $search);

到这个

$this->db->or_like('nombre', $search);

你可以试试这样的伎俩:

$this->db->or_where("`nombre` LIKE '%".$searcg."%'", NULL, FALSE);