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;
- 从 phpMyAdmin 脚本编辑器下的文本框中删除了默认分隔符
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;
- 从 phpMyAdmin 脚本编辑器下的文本框中删除了默认分隔符