Limit结合使用SQL_calc_found_rows来提高子句的灵活性
在很多分页的程序中都这样写:
SELECT COUNT(*) from `table` WHERE
......; 查出符合条件的记录总数
SELECT * FROM `table` WHERE ...... limit M,N; 查询当页要显示的数据
这样的语句可以改成:
SELECT SQL_CALC_FOUND_ROWS * FROM `table` WHERE
...... limit M, N;
或SELECT SQL_CALC_FOUND_ROWS name,email FROM `table` WHERE ...... limit M, N;
SELECT FOUND_ROWS();//也相当于一条sql语句,其中就把FOUND_ROWS()当做普通sql语句中的一个字段使用就行,它的值就是上面不包含limit的记录数
这样只要执行一次较耗时的复杂查询可以同时得到与不带limit同样的记录条数
注意:只能在mysql4.0.0以上版本有效
或SELECT SQL_CALC_FOUND_ROWS name,email FROM `table` WHERE ......
SELECT FOUND_ROWS();//也相当于一条sql语句,其中就把FOUND_ROWS()当做普通sql语句中的一个字段使用就行,它的值就是上面不包含limit的记录数
这样只要执行一次较耗时的复杂查询可以同时得到与不带limit同样的记录条数
注意:只能在mysql4.0.0以上版本有效
网络上志同道合,我们一起学习网络安全,一起进步,QQ群:694839022