MariaDB 10 の FOUND_ROWS() 関数の関連する使用法と関数
P粉670838735
2023-08-28 17:39:42
<p>select ステートメントによって返される行数を必要とする関数があります。いくつか検索した結果、FOUND_ROWS() 関数を見つけました。しかし、それはうまくいかないと思います: </p>
<pre class="brush:php;toolbar:false;">SELECT * FROMtipfirme LIMIT 20;
SELECT FOUND_ROWS();</pre>
<p>見つかった値として常に 1 を返すためです。 </p>
<p>ただし、1行で実行すると機能します。 </p>
<pre class="brush:php;toolbar:false;">SELECT FOUND_ROWS() FROM (SELECT * FROMtipfirme LIMIT 20) as T</pre>
<p>何か間違ったことをしているのでしょうか、それともこの機能に問題があるのでしょうか? </p>
FOUND_ROWS は、前のリクエスト (select ステートメント全体) によって返された行数を返します。あなたはちょうど欲しいようです:
リーリーselect found_rows();
単独で使用すると常に 1 が返されるとは限りません。テストしたいものをテストしていないのではないかと思います。select * fromtipfirme limit 20;
に続く場合は、select によって返された行数を返します (limit の後、または前の selectで
sql_calc_found_rows を指定した場合は前)。SELECT FOUND_ROWS() FROM (SELECT * FROMtipfirme LIMIT 20) T
は必要な結果ではありません。サブクエリが返すのと同じ数の行が返され、各行にはサブクエリ内の行数に関係なく、以前に実行された select によって返された行数。