簡體   English   中英

MariaDB 10 中的 FOUND_ROWS()

[英]FOUND_ROWS() in MariaDB 10

我有一個 function,它需要 select 返回的行數。谷歌搜索后我發現 FOUND_ROWS() function。但我認為它不起作用:

SELECT * FROM tipfirme LIMIT 20;
SELECT FOUND_ROWS();

因為它總是返回 1 作為找到的值。

但是,如果我在一行中運行它,它就可以工作。

  SELECT FOUND_ROWS() FROM (SELECT * FROM tipfirme LIMIT 20) as T

我是做錯了什么還是 function 壞了?

FOUND_ROWS 返回前一個請求(整個 select 語句)返回的行數。 在我看來你只是想要:

select count(1) from (select * From tipfirme limit 20) as T

select found_rows(); 分開不會總是返回 1; 我懷疑你沒有測試你想要測試的東西。 如果它緊跟在select * from tipfirme limit 20; 它確實會返回 select 返回的行數(在限制之后,或者如果您在之前的選擇中指定了sql_calc_found_rows則在限制之前)。

SELECT FOUND_ROWS() FROM (SELECT * FROM tipfirme LIMIT 20) as T沒有按照您的想法行事; 它將返回與 subselect 返回的行一樣多的行,並且每行將具有先前執行的 select 返回的行數,與 subselect 的行數完全無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM