MySQL 没有执行 If...else 的存储过程

MySQL Stored Procedure with If...else not executing

CREATE DEFINER=`root`@`localhost` PROCEDURE `Mobile_ForgotPassword`(IN`v_email` VARCHAR(30), IN `v_valid` INT)
NO SQL
IF (v_valid = 0) THEN
    SELECT email FROM user_registration WHERE email = v_email;
ELSE
    SELECT password FROM user_registration WHERE email = v_email;
END IF;

我有这个 MySQL 存储过程,但它不起作用。每当我尝试在 phpmyadmin 上执行此脚本时,第 4 行出现语法错误错误。当我使用 phpmyadmin 时,分隔符已经动态添加,并且我拥有 root 帐户的特权。我尝试删除 DEFINER 但它仍然无法正常工作。据我所知,我没有在脚本中看到任何语法错误,或者我没有得到它。有人吗?

您需要添加DELIMITER

DELIMITER |
    CREATE PROCEDURE `Mobile_ForgotPassword`(IN`v_email` VARCHAR(30), IN `v_valid` INT)
    NO SQL
    IF (v_valid = 0) THEN
        SELECT email FROM user_registration WHERE email = v_email;
    ELSE
        SELECT PASSWORD FROM user_registration WHERE email = v_email;
    END IF;
    |
    DELIMITER ;
CREATE DEFINER=`root`@`localhost` PROCEDURE `Mobile_ForgotPassword`(IN `v_email` VARCHAR(30), IN `v_valid` INT) 
NO SQL 
IF (v_valid = 0) THEN 
    SELECT email FROM user_registration WHERE email = v_email LIMIT 1;
ELSE 
SELECT password FROM user_registration WHERE email = v_email LIMIT 1; 
END IF;
  1. 从 phpMyAdmin 脚本编辑器下的文本框中删除了默认分隔符