FOUND_ROWS() 在 MariaDB 10 中
FOUND_ROWS() in MariaDB 10
我有一个函数需要 select 返回的行数。经过一番谷歌搜索后,我找到了 FOUND_ROWS() 函数。但我不认为它有效:
SELECT * FROM tipfirme LIMIT 20;
SELECT FOUND_ROWS();
因为它总是returns 1 作为找到的值。
但是,如果我 运行 它在一行中,它就可以工作。
SELECT FOUND_ROWS() FROM (SELECT * FROM tipfirme LIMIT 20) as T
是我做错了什么还是功能坏了?
FOUND_ROWS returns 前一个请求(整个 select 语句)return 的行数。在我看来你只是想要:
select count(1) from (select * From tipfirme limit 20) as T
select found_rows();
分开不会总是return1;我怀疑你没有测试你想要测试的东西。如果它紧跟在 select * from tipfirme limit 20;
之后,它确实 return select return 编辑的行数(在限制之后,或者如果您指定 sql_calc_found_rows
则在限制之前)在之前的 select).
SELECT FOUND_ROWS() FROM (SELECT * FROM tipfirme LIMIT 20) as T
并没有按照您的想法行事;它将 return 与 subselect returned 一样多的行,并且每行将具有 先前执行的 [=27= 的行数] returned,与子select的行数完全无关。
我有一个函数需要 select 返回的行数。经过一番谷歌搜索后,我找到了 FOUND_ROWS() 函数。但我不认为它有效:
SELECT * FROM tipfirme LIMIT 20;
SELECT FOUND_ROWS();
因为它总是returns 1 作为找到的值。
但是,如果我 运行 它在一行中,它就可以工作。
SELECT FOUND_ROWS() FROM (SELECT * FROM tipfirme LIMIT 20) as T
是我做错了什么还是功能坏了?
FOUND_ROWS returns 前一个请求(整个 select 语句)return 的行数。在我看来你只是想要:
select count(1) from (select * From tipfirme limit 20) as T
select found_rows();
分开不会总是return1;我怀疑你没有测试你想要测试的东西。如果它紧跟在 select * from tipfirme limit 20;
之后,它确实 return select return 编辑的行数(在限制之后,或者如果您指定 sql_calc_found_rows
则在限制之前)在之前的 select).
SELECT FOUND_ROWS() FROM (SELECT * FROM tipfirme LIMIT 20) as T
并没有按照您的想法行事;它将 return 与 subselect returned 一样多的行,并且每行将具有 先前执行的 [=27= 的行数] returned,与子select的行数完全无关。