首页 > 解决方案 > MySQL Else If 语句未执行

问题描述

无论我创建什么 MySQL PROCEDURE,第二个 ELSE IF 语句都返回零结果。每个 Select 语句在单独运行时都会返回一个结果。我没有看到我的语法有问题。如果这是一个简单的修复,我深表歉意。请帮忙。

  DELIMITER $$

CREATE PROCEDURE TEST(type VARCHAR(7), cat TINYINT)
BEGIN
    IF type = 'coffee' THEN
        Select * FROM specific_coffee WHERE id=cat;
    ELSEIF type = 'goodies' THEN
        Select * FROM non_coffee_products WHERE id=cat;
    END IF;
END $$

标签: mysqlif-statementstored-procedures

解决方案


过程文本是正确的。

CREATE TABLE specific_coffee
SELECT 1 id, 11 val
UNION ALL
SELECT 2,22
CREATE TABLE non_coffee_products 
SELECT 1 id, 111 val
UNION ALL
SELECT 2,222
CREATE PROCEDURE TEST(type VARCHAR(7), cat TINYINT)
BEGIN
    IF type = 'coffee' THEN
        Select * FROM specific_coffee WHERE id=cat;
    ELSEIF type = 'goodies' THEN
        Select * FROM non_coffee_products WHERE id=cat;
    END IF;
END
CALL TEST ('coffee', 1)
编号 | 值
-: | --:
 1 | 11
CALL TEST ('goodies', 2)
编号 | 值
-: | --:
 2 | 222

db<>在这里摆弄

检查您的数据和参数。


推荐阅读