排除限制条件的查询的 CodeIgniter 计数记录
CodeIgniter Count Records for Query that Excludes Limit Condition
我想在一个查询中做两件事:使用 limit() 函数,同时获取记录总数作为查询的记录计数,就好像没有使用限制一样。所以,如果总共有 21 条记录满足条件 like '%Gregory%'
,我想要那个值 returned,即使我使用的是 limit(10,0)
.
这是我的代码:
$data['recordcount'] = $this->db->count_all_results('assets');
$this->db->limit(10, 0);
if(isset($data['order'])){
$query = $this->db->select('*')->from('assets')->or_like($array)->order_by($column, $data['order'])->get();
}
问题是第一行return中的$data['recordcount']全部记录。我要return第4行满足查询条件的所有记录,但没有第2行找到的限制
你可以在星号(*)前实现SQL_CALC_FOUND_ROWS:
$this->db->select('SQL_CALC_FOUND_ROWS *')->from('assets')..etc
这将计算在没有 LIMIT 条件的情况下 returned 的行数。
之后您可以立即 select FOUND_ROWS(),如下所示:
$this->db->select('FOUND_ROWS()')->get();
这会 return 您要查找的号码。
有关详细信息,请参阅此页面
enter link description here
通常count_all_results()
在运行时清除select语句。但是通过将第二个参数设置为 FALSE,该语句将被保留。
我认为这对你有用。
$this->db->select('*')->from('assets')->or_like($array);
$data['recordcount'] = $this->db->count_all_results('assets', FALSE);
$this->db->limit(10, 0);
if(isset($data['order']))
{
$this->db->order_by($column, $data['order']);
}
$query = $this->db->get();
我想在一个查询中做两件事:使用 limit() 函数,同时获取记录总数作为查询的记录计数,就好像没有使用限制一样。所以,如果总共有 21 条记录满足条件 like '%Gregory%'
,我想要那个值 returned,即使我使用的是 limit(10,0)
.
这是我的代码:
$data['recordcount'] = $this->db->count_all_results('assets');
$this->db->limit(10, 0);
if(isset($data['order'])){
$query = $this->db->select('*')->from('assets')->or_like($array)->order_by($column, $data['order'])->get();
}
问题是第一行return中的$data['recordcount']全部记录。我要return第4行满足查询条件的所有记录,但没有第2行找到的限制
你可以在星号(*)前实现SQL_CALC_FOUND_ROWS:
$this->db->select('SQL_CALC_FOUND_ROWS *')->from('assets')..etc
这将计算在没有 LIMIT 条件的情况下 returned 的行数。
之后您可以立即 select FOUND_ROWS(),如下所示:
$this->db->select('FOUND_ROWS()')->get();
这会 return 您要查找的号码。
有关详细信息,请参阅此页面 enter link description here
通常count_all_results()
在运行时清除select语句。但是通过将第二个参数设置为 FALSE,该语句将被保留。
我认为这对你有用。
$this->db->select('*')->from('assets')->or_like($array);
$data['recordcount'] = $this->db->count_all_results('assets', FALSE);
$this->db->limit(10, 0);
if(isset($data['order']))
{
$this->db->order_by($column, $data['order']);
}
$query = $this->db->get();