P粉8832782652023-08-29 09:48:52
FOUND_ROWS返回前一个请求(整个select语句)返回的行数。听起来你只想要:
select count(1) from (select * From tipfirme limit 20) as T
select found_rows();
单独使用不总是返回1;我怀疑你没有测试你想要测试的内容。如果它紧跟在select * from tipfirme limit 20;
之后,它确实会返回select返回的行数(在limit之后,或者在之前如果你在前一个select中指定了sql_calc_found_rows
)。
SELECT FOUND_ROWS() FROM (SELECT * FROM tipfirme LIMIT 20) as T
并不是你想要的结果;它将返回与子查询返回的行数相同的行数,并且每行都会有先前执行的select返回的行数,与子查询的行数无关。