检查存储过程中的select语句是否返回行

时间:2013-02-12 03:18:26

标签: mysql sql stored-procedures aggregate-functions

如何检查存储过程中的select语句是否返回任何行。

select * from creditcards;
If sqlcod = 0 THEN

我想做类似的事情,但是sqlcod似乎在MySql中不起作用。

2 个答案:

答案 0 :(得分:8)

尝试使用COUNT

DELIMITER $$
CREATE PROCEDURE procName()
BEGIN
    SET @recCount = (select count(*) from creditcards);
    If @recCount = 0 THEN
        -- statement here ;
    END IF;
END $$
DELIMITER ;

答案 1 :(得分:1)

尝试使用以下内容:

使用FOUND_ROWS()SQL_CALC_FOUND_ROWS

DELIMITER $$ 

create procedure myproc() 
begin 
   SELECT SQL_CALC_FOUND_ROWS * 
   FROM tbl_name 
   WHERE id > 100 
   LIMIT 10; 

   if SELECT FOUND_ROWS() = 0 then 
   -- log away bro! 
   end if; 
end $$
DELIMITER $$
相关问题