如何检查存储过程中的 select 语句是否返回任何行。
select * from creditcards;
If sqlcod = 0 THEN
例如,我想做这样的事情,但 sqlcod 似乎在 MySql 中不起作用。
如何检查存储过程中的 select 语句是否返回任何行。
select * from creditcards;
If sqlcod = 0 THEN
例如,我想做这样的事情,但 sqlcod 似乎在 MySql 中不起作用。
尝试使用COUNT
,
DELIMITER $$
CREATE PROCEDURE procName()
BEGIN
SET @recCount = (select count(*) from creditcards);
If @recCount = 0 THEN
-- statement here ;
END IF;
END $$
DELIMITER ;
尝试使用如下所示:
使用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 $$