Penggunaan dan fungsi berkaitan fungsi FOUND_ROWS() dalam MariaDB 10
P粉670838735
2023-08-28 17:39:42
<p>Saya mempunyai fungsi yang memerlukan bilangan baris yang dikembalikan melalui pernyataan pilih. Selepas beberapa carian, saya menemui fungsi FOUND_ROWS(). Tetapi saya rasa ia tidak berkesan: </p>
<pre class="brush:php;toolbar:false;">PILIH * DARI tipfirme LIMIT 20;
PILIH FOUND_ROWS();</pre>
<p>Kerana ia sentiasa mengembalikan 1 sebagai nilai yang ditemui. </p>
<p>Walau bagaimanapun, jika saya menjalankannya dalam satu baris, ia berfungsi. </p>
<pre class="brush:php;toolbar:false;">SELECT FOUND_ROWS() FROM (SELECT * FROM tipfirme LIMIT 20) sebagai T</pre>
<p>Adakah saya melakukan sesuatu yang salah atau ada sesuatu yang salah dengan fungsi ini? </p>
FOUND_ROWS mengembalikan bilangan baris yang dikembalikan oleh permintaan sebelumnya (keseluruhan pernyataan pilihan). Nampaknya anda hanya mahu:
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
bukan hasil yang anda mahukan; ia akan mengembalikan bilangan baris yang sama seperti subkueri yang dikembalikan, dan setiap baris akan mempunyai bilangan baris yang dikembalikan oleh yang dilaksanakan sebelum ini pilih, tanpa mengira bilangan baris dalam subkueri.