Mysql 关于 FOUND_ROWS() 和 ROW_COUNT() 函数

查看:297
本文介绍了Mysql 关于 FOUND_ROWS() 和 ROW_COUNT() 函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

FOUND_ROWS : 获取上一个select语句查询到的行数;
ROW_COUNT : 获取上一条update, insert ,delete 影响的行数;

-- 我先执行如下代码 -- 得到20条记录
select * from tu_users;
-- 然后执行 found_rows()函数 -- 得到 413
select found_rows();
-- 这个结果根本就是有问题的,按道理found_rows函数应该得到20的,
-- 可是无论何时执行,他得到的结果都是413

-- 我们执行一条插入语句
insert into employee values(5,40,6500.00);
-- 然后执行 row_count() 函数 -- 得到-1
select row_count();  -- 结果是-1
-- 所以这个结论也是不正确的,按道理应该得到的结果是1才正确。
-- 这个select row_count() 函数也是,无论何时执行,无论之前执行的是什么语句,得到的都是-1

可是我在mysql中进行测试的时候,根本无法获取正确的结果,在百度谷歌搜出来的都是各种抄袭,所以在此处请教大神,如何配置才能得到正确结果。

解决方案

自己又在 存储过程中验证了一下

DROP PROCEDURE IF EXISTS simple_cursor ;
CREATE PROCEDURE simple_cursor()   
BEGIN
    DECLARE branchno VARCHAR(100);
    DECLARE icount INT DEFAULT 100;
    insert into employee values(3,20,1900.00);
    -- UPDATE employee SET deptid = 100;
    -- DELETE FROM employee ;
    SELECT ROW_COUNT() INTO icount;
    SELECT icount;
END;

结果是在存储过程中 row_count() 的结果可以正常出现,
但是found_rows()仍然不知道如何验证!

这篇关于Mysql 关于 FOUND_ROWS() 和 ROW_COUNT() 函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆