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以上版本有效


posted @ 2011-03-20 16:02  SEC.VIP_网络安全服务  阅读(121)  评论(0编辑  收藏  举报