参考:https://www.cnblogs.com/JennyYu/p/16888090.html
https://blog.csdn.net/my_new_way/article/details/103572667
FOUND_ROWS():
found_rows()用于查询同一连接下,上一条执行select查询返回的行数,包括show 语句返回的行数。中间可以插入执行dml语句,返回依然是上一条select语句返回的行数。
使用sql_calc_found_rows 与 found_rows()组合,可以查询到去除limit限制后返回的总行数。
1.与 SQL_CALC_FOUND_ROWS 合用,返回满足条件的行数,应用where,但会忽略LIMIT。
SELECT SQL_CALC_FOUND_ROWS * FROM student WHERE Gender='男' LIMIT 1;-- 查1行
SELECT FOUND_ROWS();-- 返回表中所有 Gender='男' 的总行数 8
2.不加 SQL_CALC_FOUND_ROWS 的时候,返回查询返回的总数据行数,包含LIMIT。
ROW_COUNT():
row_count()查询同一连接上一条dml语句返回的行数,中间不能穿插其他select语句。如果有其他语句,结果返回-1。
UPDATE student SET Gender='1' WHERE id<=3;
SELECT ROW_COUNT();-- 返回3
如果Gender本来就是1,那么Mysql不会更改,则ROW_COUNT()不会计数,比如第一条、第二条的Gender本来就是1,那最后返回1。