首页  >  问答  >  正文

MariaDB 10中的FOUND_ROWS()函数的相关用法和功能

<p>我有一个需要通过select语句返回的行数的函数。在一些搜索后,我找到了FOUND_ROWS()函数。但我不认为它起作用:</p> <pre class="brush:php;toolbar:false;">SELECT * FROM tipfirme LIMIT 20; SELECT FOUND_ROWS();</pre> <p>因为它总是返回1作为找到的值。</p> <p>然而,如果我将其放在一行中运行,它就起作用了。</p> <pre class="brush:php;toolbar:false;">SELECT FOUND_ROWS() FROM (SELECT * FROM tipfirme LIMIT 20) as T</pre> <p>我是做错了什么还是这个函数有问题?</p>
P粉670838735P粉670838735419 天前418

全部回复(1)我来回复

  • P粉883278265

    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返回的行数,与子查询的行数无关。

    回复
    0
  • 取消回复