MySQL Cursor在select语句中带有变量

时间:2016-11-18 12:57:06

标签: php mysql cursor

我在存储过程中使用了以下代码:

insert
像这样,我会在行中获得语法错误" SELECT计算表到v_calctable FROM wac.degrees其中tablename = concat(" cdb _" + arg_tablename);"

如果我把它放在"声明光标"没有语法错误,但我需要在de Cursor select语句中使用结果。

我该如何做到这一点?

感谢。

1 个答案:

答案 0 :(得分:1)

CREATE DEFINER=`root`@`localhost` PROCEDURE `my_procedure`()
BEGIN
DECLARE done INT DEFAULT FALSE;
declare v_degree int(11);
declare v_start_age smallint(6);
declare v_end_age smallint(6);
declare v_gender varchar(20);
declare v_calctable varchar(200);

SELECT calculationtable into v_calctable FROM wac.degrees where tablename = concat("cdb_" + arg_tablename);
begin                                                                   -- write here begin keyword
declare cur CURSOR for select degree, start_age, end_age, belt, gender from v_calctable;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
end;                                                                    -- end here inner block

END

当您使用另一个开始结束关键字的内部块时 那么它没有任何合成错误。 但这个程序给你正确的结果我不清楚