[英]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.