6

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

select * from creditcards;
If sqlcod = 0 THEN

例如,我想做这样的事情,但 sqlcod 似乎在 MySql 中不起作用。

4

2 回答 2

10

尝试使用COUNT

DELIMITER $$
CREATE PROCEDURE procName()
BEGIN
    SET @recCount = (select count(*) from creditcards);
    If @recCount = 0 THEN
        -- statement here ;
    END IF;
END $$
DELIMITER ;
于 2013-02-12T03:20:08.970 回答
2

尝试使用如下所示:

使用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 $$
于 2013-02-12T04:17:09.103 回答