如何检查存储过程中的select语句是否返回任何行。
select * from creditcards;
If sqlcod = 0 THEN
我想做类似的事情,但是sqlcod似乎在MySql中不起作用。
答案 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 $$