9

我正在尝试为以下逻辑编写mysql程序,

select id, fullname from users where fullname like concat(lastname, ' ', firstname, ' (' , middlename, '%');

如果上面的查询返回 0 条记录,那么

    select id, fullname from users where fullname like concat(lastname, ' ', firstname, '%');

.... few more queries depending upon result,

我正在尝试编写程序 mysql 程序,在那,我正在使用 mysql 游标,

DECLARE user_cnt CURSOR FOR select id, fullname from users where fullname like concat(lastname, ' ', firstname, ' (' , middlename, '%'); 

现在我想检查 user_cursor 中的记录数,以便我可以检查条件“如果查询返回 0 条记录”

如何在不迭代的情况下找到 mysql 游标中的记录数?

4

2 回答 2

15

在光标前进行计数:

select count(*)
into @user_cnt
from users
where fullname like concat (
    lastname,
    ' ',
    firstname,
    ' (',
    middlename,
    '%'
    );

编辑:如果您想在打开光标后执行此操作,请尝试执行以下操作:

OPEN your_cursor;
select FOUND_ROWS() into user_cnt ;
于 2013-10-03T20:14:13.270 回答
0

在您的游标选择中包含 SQL_CALC_FOUND_ROWS。然后在获取时使用 FOUND_ROWS()。它给出了记录的数量

于 2015-01-22T13:14:49.600 回答