MySQL中的FOUND_ROWS()與ROW_COUNT()函式

邢帅杰發表於2024-05-13

參考:https://www.cnblogs.com/JennyYu/p/16888090.html
FOUND_ROWS():
found_rows()用於查詢同一連線下,上一條執行select查詢返回的行數,包括show 語句返回的行數。中間可以插入執行dml語句,返回依然是上一條select語句返回的行數。
使用sql_calc_found_rows 與 found_rows()組合,可以查詢到去除limit限制後返回的總行數。
1.與 SQL_CALC_FOUND_ROWS 合用,返回滿足條件的行數,應用where,但會忽略LIMIT。
SELECT SQL_CALC_FOUND_ROWS * FROM student WHERE Gender='男' LIMIT 1;-- 查1行
SELECT FOUND_ROWS();-- 返回表中所有 Gender='男' 的總行數 8
2.不加 SQL_CALC_FOUND_ROWS 的時候,返回查詢返回的總資料行數,包含LIMIT。

ROW_COUNT():
row_count()查詢同一連線上一條dml語句返回的行數,中間不能穿插其他select語句。如果有其他語句,結果返回-1。
UPDATE student SET Gender='1' WHERE id<=3;
SELECT ROW_COUNT();-- 返回3
如果Gender本來就是1,那麼Mysql不會更改,則ROW_COUNT()不會計數,比如第一條、第二條的Gender本來就是1,那最後返回1。

相關文章