检索存储过程中的值并在该存储过程中使用它

时间:2010-04-20 14:41:53

标签: mysql stored-procedures

delimiter //
CREATE DEFINER=root@localhost PROCEDUREgetData(IN templateName VARCHAR(45),IN templateVersion VARCHAR(45),IN userId VARCHAR(45))
BEGIN
set @version = CONCAT("SELECT saveOEMsData_answersVersion FROMsaveOEMsData WHERE saveOEMsData_templateName = '",templateName,"' ANDsaveOEMsData_templateVersion = ",templateVersion," AND saveOEMsData_userId= ",userId);
PREPARE s1 from @version;
EXECUTE S1;
END // delimiter ;

我正在检索saveOEMsData_answersVersion,但我必须在IF循环中使用它,如果版本== 1,那么我会使用查询,否则我会使用其他东西。但我无法使用该版本。有人可以帮忙吗?我只能打印但不能使用该版本进行数据操作。该程序工作正常,但我无法进入下一步,即if条件。

if条件会有类似下面提到的内容。

IF(ver == 1) THEN SELECT "1";
END IF;

1 个答案:

答案 0 :(得分:-1)

在一个Procedure中允许IF,你不能在SQL中使用IF,在SQL中你可以使用CASE,但是它没有相同的能力。

构建第二个过程来处理IF / Then以获取getData

的结果