mariadb 如何修复sql中的此IF语句错误

5t7ly7z5  于 2023-04-20  发布在  其他
关注(0)|答案(1)|浏览(122)

我在使用SQL IF语句时遇到了一个问题。我尝试了一些其他语句,但它也不起作用。
我的代码在这里:

DELIMITER $
BEGIN NOT ATOMIC
    IF user = 'test' THEN 
       SELECT fox FROM conv WHERE user = test;
    ELSE
       INSERT INTO pending_conv (pending) VALUES ('test');
    END IF;
END $
DELIMITER ;

错误消息:#1327 - Undeclared variable: user
我知道我不擅长这个,因为我是新来的。谢谢你的回答

dgsult0t

dgsult0t1#

不清楚你要做什么,但你可以在调用存储过程时传入一个值。为此,在CREATE PROCEDURE语句中添加一个IN参数,并给予参数一个名称和数据类型:

DELIMITER $
CREATE PROCEDURE my_procedure(IN in_user VARCHAR(255))
BEGIN
    IF in_user = 'test' THEN 
       SELECT fox FROM conv WHERE user = 'test';
    ELSE
       INSERT INTO pending_conv (pending) VALUES ('test');
    END IF;
END $
DELIMITER ;

调用存储过程并像这样为user传递一个值:

CALL my_procedure('some_user');

相关问题