Php select语句中带有变量的MySQL游标
我在存储过程中包含以下代码:Php select语句中带有变量的MySQL游标,php,mysql,cursor,Php,Mysql,Cursor,我在存储过程中包含以下代码: 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
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);
declare cur CURSOR for select degree, start_age, end_age, belt, gender from v_calctable;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
像这样,我将在“SELECT calculation table to v_calctable FROM wac.degrees where tablename=concat(“cdb_u”+arg_tablename);”行中得到一个语法错误
如果我把它放在“declarecoursor”后面,就不会有语法错误,但我需要在de cursor select语句中使用结果
我怎样才能做到这一点
谢谢
当您通过另一个开始和结束关键字使用内部块时
那么它就没有syntask错误了。
但是这个过程是否能给出正确的结果我不清楚您可能需要的只是一个连接,而不是一个存储过程
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