繁体   English   中英

MySQL存储过程多选

[英]Mysql stored procedure multiple selects

我正在运行一个存储过程。 问题似乎在于它将进入if语句。 同样由于某种原因,无论我使用多少选择,它只会返回第一个。 我已经从另一个像超级按钮一样工作的存储过程中复制了它,但是这个过程不会继续进行。 有任何想法吗?

DROP PROCEDURE IF EXISTS genSelPriceTier;
DELIMITER $$
CREATE PROCEDURE genSelPriceTier(tier_id INT, default_id INT)
    BEGIN
       DECLARE rowCount INT DEFAULT 0;  
          SELECT * FROM price_tier WHERE price_tier_id = tier_id;
          SET rowCount = FOUND_ROWS();
        IF rowCount < 1 THEN
            SELECT * FROM price_tier WHERE price_tier_id = default_id;
            END IF;
    END$$
DELIMITER ;

报告了一个与FOUND_ROWS()的使用有关的错误 因此,我建议对返回的行数使用Count(*)。 像下面这样的东西应该起作用。

DROP PROCEDURE IF EXISTS genSelPriceTier;
DELIMITER $$
CREATE PROCEDURE genSelPriceTier(tier_id INT, default_id INT)
    BEGIN
       DECLARE rowCount INT DEFAULT 0;  
          SELECT COUNT(*) INTO rowCount FROM price_tier WHERE price_tier_id = tier_id 
        IF rowCount < 1 THEN
            SELECT * FROM price_tier WHERE price_tier_id = default_id;
            END IF;
    END$$
DELIMITER ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM