【问题标题】:Checking if select statement in stored procedure returns row检查存储过程中的 select 语句是否返回行
【发布时间】:2013-01-27 07:17:26
【问题描述】:

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

select * from creditcards;
If sqlcod = 0 THEN

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

【问题讨论】:

  • sqlcod 不是 MySQL 或我知道的任何其他数据库中的关键字。检查你得到它的代码,它是一个变量。

标签: mysql sql stored-procedures aggregate-functions


【解决方案1】:

尝试使用COUNT

DELIMITER $$
CREATE PROCEDURE procName()
BEGIN
    SET @recCount = (select count(*) from creditcards);
    If @recCount = 0 THEN
        -- statement here ;
    END IF;
END $$
DELIMITER ;

【讨论】:

    【解决方案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 $$
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 2016-04-20
      相关资源
      最近更新 更多