我想将存储过程输入参数设置为静态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中给我一个错误,说我的语法错误,但没有指示哪个部分。
任何帮助非常感谢
答案 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