我有两个get
个查询,最后使用array_merge()
进行合并,但在此之前我的where
和order_by
子句在首次执行{{1}时实现只根据OOPS概念进行查询。但是我希望在两个查询上实现这个get
和where
子句,而不需要为第二个执行查询编写单独的order_by
和where
子句。我的代码如下:
order_by
答案 0 :(得分:1)
试试这个
$this->db->where('lower(status) <>', 'completed');
$this->db->order_by('calldate','asc');
$q = $this->db->get('records'); //where and orderby applies to this query only
$data1 = $q->result_array();
$q = $this->db->get('other_records'); //where and orderby does not apply to this
$data2 = $q->result_array();
$data = array_merge($data1, $data2);
答案 1 :(得分:1)
您可以使用UNION编写原始SQL。例如
SELECT * FROM records WHERE lower(status)<>'completed' ORDER BY calldate ASC
UNION
SELECT * FROM other_records WHERE lower(status)<>'completed' ORDER BY calldate ASC
然后您可以避免发送2个单独的查询并合并数组。它减少了网络往返,以发送合并数组所需的查询和CPU资源。