我正在尝试检索字段中所有唯一值的计数。
示例 SQL:
SELECT count(distinct accessid) FROM (`accesslog`) WHERE record = '123'
如何在 CodeIgniter 中进行这种查询?
我知道我可以使用$this->db->query()
并编写自己的 SQL 查询,但我还有其他要使用$this->db->where()
的要求。如果我使用->query()
,我必须自己编写整个查询。
我正在尝试检索字段中所有唯一值的计数。
示例 SQL:
SELECT count(distinct accessid) FROM (`accesslog`) WHERE record = '123'
如何在 CodeIgniter 中进行这种查询?
我知道我可以使用$this->db->query()
并编写自己的 SQL 查询,但我还有其他要使用$this->db->where()
的要求。如果我使用->query()
,我必须自己编写整个查询。
$record = '123';
$this->db->distinct();
$this->db->select('accessid');
$this->db->where('record', $record);
$query = $this->db->get('accesslog');
然后
$query->num_rows();
应该有很长的路要走。
用下面的代码试试
function fun1()
{
$this->db->select('count(DISTINCT(accessid))');
$this->db->from('accesslog');
$this->db->where('record =','123');
$query=$this->db->get();
return $query->num_rows();
}
您也可以运行->select('DISTINCT `field`', FALSE)
并且第二个参数告诉CI
不要转义第一个参数。
使用第二个参数作为false
,输出将SELECT DISTINCT `field`
不是没有第二个参数,SELECT `DISTINCT` `field`
简单但有用的方法:
$query = $this->db->distinct()->select('order_id')->get_where('tbl_order_details', array('seller_id' => $seller_id));
return $query;
由于计数是预期的最终值,因此在您的查询中
$this->db->distinct();
$this->db->select('accessid');
$this->db->where('record', $record);
$query = $this->db->get()->result_array();
return count($query);
计算返回值