Nyx*_*nyx 43 php mysql pagination codeigniter
我正在使用Codeigniter进行分页功能,但我认为这一般适用于PHP/mySQL编码.
我正在使用偏移和限制检索目录列表,具体取决于我每页需要多少结果.但是要知道所需的总页数,我需要知道(结果总数)/(限制).现在我想第二次运行SQL查询然后计算所需的行数但不使用LIMIT.但我认为这似乎浪费了计算资源.
有没有更好的方法?谢谢!
编辑:我的SQL查询也使用WHERE来选择具有特定'category_id'的所有行
从 MySQL 8.0.17 开始,SQL_CALC_FOUND_ROWS 查询修饰符和随附的 FOUND_ROWS() 函数已弃用,并将在未来的 MySQL 版本中删除。作为替代方案,考虑使用 LIMIT 执行查询,然后使用 COUNT(*) 且不使用 LIMIT 执行第二个查询,以确定是否存在其他行。例如,代替这些查询:
SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)
请改用这些查询:
SELECT * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT COUNT(*) WHERE id > 100;
Run Code Online (Sandbox Code Playgroud)
COUNT(*) 需要进行某些优化。SQL_CALC_FOUND_ROWS 会导致某些优化被禁用。
SELECT COUNT(*) FROM table_name WHERE column = 'value'
将很快返回匹配该条件的表中的记录总数.
数据库SELECT
操作通常"便宜"(资源方面),所以不要以合理的方式使用它们.
编辑:WHERE
在OP提到他们需要该功能后添加.
归档时间: |
|
查看次数: |
19061 次 |
最近记录: |