gpt4 book ai didi

mysql - 无法在 MySql 中的 if else 语句中设置变量

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:51 25 4
gpt4 key购买 nike

我创建了一个存储过程,其要求如下

当我使用输入的一个用户名执行存储过程时,如果数据库中存在用户名,则比较(变量)result_userId 将设置为 userId 否则,如果数据库中不存在用户名,则(变量)result_userId 将设置为数字99

但我做不到

请帮帮我!

::代码如下:

DELIMITER $$
USE `shoppy` $$
CREATE PROCEDURE `testProc02`
(
IN _username CHAR(50),
OUT result_userId INT UNSIGNED
)
BEGIN
SELECT @uId := userId FROM user
WHERE userName = _username;
IF @uId = NULL THEN
SET result_userId = 99;
ELSE
SET result_userId = @uId;
END IF;
END $$
DELIMITER ;

当我调用 testProc02() 时;

enter image description here

最佳答案

您不能使用相等运算符 = null 。您必须测试表达式 IS NULL或使用空安全相等运算符 <=> .

你的代码应该是

DELIMITER $$
USE `shoppy` $$
CREATE PROCEDURE `testProc02`
(
IN _username CHAR(50),
OUT result_userId INT UNSIGNED
)
BEGIN
SELECT @uId := userId FROM user
WHERE userName = _username;
IF @uId IS NULL THEN
SET result_userId = 99;
ELSE
SET result_userId = @uId;
END IF;
END $$
DELIMITER ;

发生的事情是 @uID = NULL始终评估为 null ,其中 if解释为 false .

关于mysql - 无法在 MySql 中的 if else 语句中设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36807569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com