检查存储过程中的select语句是否返回行
问题描述:
如何检查存储过程中的select语句是否返回任何行。检查存储过程中的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 $$
'sqlcod'不是MySQL中的关键字,或其他任何我知道的数据库。检查你得到它的代码,这是一个变量。 – 2013-02-12 03:25:30