使用limit查询的同时取得总的记录数:SQL_CALC_FOUND_ROWS和FOUND_ROWS

作者:haobinghui 时间:2019-02-13 浏览:1287 次

通常我们都用如下的sql来进行列表


SELECT name, email FROM users WHERE name LIKE ‘a%’ LIMIT 10

SELECT COUNT(*) FROM users WHERE name LIKE ‘a%’;


但是从Mysql4.0.0开始,我们可以选择使用另外一个方式:


SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE ‘a%’ LIMIT 10;

SELECT FOUND_ROWS()


其中SQL_CALC_FOUND_ROWS 告诉MySQL将sql所处理的行数记录下来,FOUND_ROWS() 则取到了这个纪录。


虽然也是两个语句,但是只执行了一次主查询,所以效率比原来要高很多。


标签: MySQL