我遇到了一个问题..。
我有很多这样的状态.
$this->db->where('Pool', "1");
$this->db->where('Bedrooms >=', "3");然后是限位语句
$this->db->limit($limit, $offset);最后我的get声明
$query = $this->db->get('table-name');我的问题是,我需要在极限语句之前计算结果,才能得到没有限制的总行。所以我试了一下.
$this->db->where('Pool', "1");
$this->db->where('Bedrooms >=', "3");
$num_rows = $this->db->count_all_results();
$this->db->limit($limit, $offset);
$query = $this->db->get('table-name');这用where语句来计数我的行。但是,get语句现在获得记录,而不使用前面的语句。
它是不可见的,但是有大量的代码处理更多的where语句,并且抓取urls中的内容,所以我宁愿不执行两次数据检索来修复这个.
干杯!
发布于 2017-08-22 05:31:04
您可以使用mysql的SQL_CALC_FOUND_ROWS
SELECT SQL_CALC_FOUND_ROWS * FROM table1
WHERE
cond1, cond2, ..., condN
LIMIT 10选择FOUND_ROWS();
这是使用mysql,您可能需要检查如何使用它的代码点火器的方式。
参考资料:
https://stackoverflow.com/questions/12320249
复制相似问题