0

我需要创建这个选择:

SELECT * FROM units
WHERE ((um like '%str%'  AND desc like '%str%') AND deleted = 0)

所以我尝试使用

$search = 'str';

$this->db->from('units');
$this->db->where("(um LIKE '%".$this->db->escape_like_str($search)."%' or
desc LIKE '%".$this->db->escape_like_str($search)."%') and deleted=0");
return $this->db->get();    

但这不起作用,即使在我的其他表、控制器、模块上它工作正常。编辑:我看到了为什么它不起作用,因为 desc ......但我的问题仍然在下面......

我尝试使用它并正常工作

$this->db->from('units');
$this->db->where('deleted',0);
$this->db->like('desc', $search);
$this->db->or_like('um', $search);

但这公式化为:

WHERE deleted = 0 AND desc like  '%str%' AND um like  '%str%'

我可以将 or_like 和 like 组合为 1 吗?并且在哪里被删除为另一个,因为现在它显示了由于or_like而删除的所有内容。

4

1 回答 1

0

为了这

SELECT * FROM units WHERE ((um like '%str%' AND desc like '%str%') AND deleted = 0)

你所要做的:

$this->db->select('*');
$this->db->from('units');
$this->db->where("((units.um LIKE '%str%'  AND units.desc LIKE '%str%') AND deleted = '0')",NULL);
$query = $this->db->get();
return $query->result();
于 2013-04-07T01:52:11.220 回答