2013-02-12 86 views
3

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

select * from creditcards; 
If sqlcod = 0 THEN 

我想要做这样的事情,例如但SQLCOD似乎并没有在MySQL的。

+0

'sqlcod'不是MySQL中的关键字,或其他任何我知道的数据库。检查你得到它的代码,这是一个变量。 – 2013-02-12 03:25:30

回答

7

使用COUNT尝试,

DELIMITER $$ 
CREATE PROCEDURE procName() 
BEGIN 
    SET @recCount = (select count(*) from creditcards); 
    If @recCount = 0 THEN 
     -- statement here ; 
    END IF; 
END $$ 
DELIMITER ; 
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 $$ 
相关问题