2012-01-03 70 views
0
FOR I = 1 TO 10 
    tRESNUM = ALLTRIM(STR(I)) 
    tRESCAS = 'tRESCAS'+tRESNUM   

    &tRESCAS = 0.00 

ENDFOR  

我将这个狐狸专业版代码转换为MySQL存储过程。如何在MySQL存储过程中获取循环值?

在FoxPro tRESCAS = 'tRESCAS' + tRESNUM给tRESCAS1,tRESCAS2 .. 和& tRESCAS给这tRESCAS1或tRESCAS1或...别的东西的价值。

例如

if I =1 => 

FOR I = 1 TO 10 
     tRESNUM = ALLTRIM(STR(1)) 
     tRESCAS = 'tRESCAS'+1  

     tRESCAS1 = 0.00   
ENDFOR 

If I =2 => 

FOR I = 1 TO 10 
     tRESNUM = ALLTRIM(STR(2)) 
     tRESCAS = 'tRESCAS'+2  

     tRESCAS2 = 0.00   
ENDFOR 

& tRESCAS自动采取tRESCAS值tRESCAS1或tRESCAS2这样。

在存储过程中我如何获得这种类型的值? (存储过程中的任何特殊变量,如&这个?)

这个细节就够了吗?

回答

3

看一看这个过程 -

PROCEDURE procedure1() 
BEGIN 

    DECLARE tRESCAS VARCHAR(255) DEFAULT ''; 
    DECLARE i INT DEFAULT 0; 

    DROP TEMPORARY TABLE IF EXISTS t; 
    CREATE TEMPORARY TABLE t(num INT, column1 VARCHAR(255)); 

    WHILE i < 10 DO 
    INSERT INTO t VALUES(i, CONCAT('tRESCAS', i)); 
    SET i = i + 1; 
    END WHILE; 

    -- Try to get fifth value 
    SELECT column1 FROM t WHERE num = 5; 

END 

所有的值存储到临时表。

执行过程:

CALL procedure1; 
+----------+ 
| column1 | 
+----------+ 
| tRESCAS5 | 
+----------+