根据它的值设置SQL存储过程的输入var

时间:2017-03-15 00:22:40

标签: mysql sql database stored-procedures phpmyadmin

我想将存储过程输入参数设置为静态int值或从子查询生成的值,具体取决于它的字符串值。

所以基本上我在存储过程的开头有这个;之后是用于创建新产品的常规INSERT查询。

IF @typeName = 'Unassigned'
BEGIN
    SET @typeName = 0;
END
ELSE
BEGIN
    SET @typeName = (SELECT type.id FROM shared.prod_type type
    WHERE type.name = typeName COLLATE utf8_unicode_ci);
END

这只是在phpMyAdmin中给我一个错误,说我的语法错误,但没有指示哪个部分。

任何帮助非常感谢

1 个答案:

答案 0 :(得分:0)

此查询可疑:

SELECT type.id
FROM shared.prod_type type
WHERE type.name = typeName COLLATE utf8_unicode_ci

如果您有一个名为typeName的列或变量,它可能会有效。但这可能是你想要的:

SELECT type.id
FROM shared.prod_type type
WHERE type.name = @typeName COLLATE utf8_unicode_ci