search

Home  >  Q&A  >  body text

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<code>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

 

</code>

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

PHP中文网PHP中文网2927 days ago746

reply all(1)I'll reply

  • 巴扎黑

    巴扎黑2017-04-17 16:15:41

    I verified it again during the storage process

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    <code>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;</code>

    The result is that the result of row_count() can appear normally in the stored procedure,
    but found_rows() still doesn’t know how to verify it!

    reply
    0
  • Cancelreply