2010-04-20 148 views
0
delimiter // 
CREATE [email protected] 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(ver == 1) THEN SELECT "1"; 
END IF; 
+0

你没有试过IF(@version = 1)...? – PierrOz 2010-04-20 14:52:10

+0

是否(@ version == 1)或者(@ version = 1)?我是新手! – sai 2010-04-20 14:58:41

+0

它是第二个:IF(@version = 1) – PierrOz 2010-04-20 15:39:16

回答

-1

如果允许一个过程里面,你不能使用IF内SQL,SQL中可以使用CASE,但不具有相同的能力。

建立第二个程序来处理IF /然后getData的结果

+0

我想IF只在程序内部! – sai 2010-04-20 14:59:04