簡體   English   中英

CONCAT在mysql存儲過程中不起作用

[英]CONCAT is not working in mysql stored procedure

DROP PROCEDURE IF EXISTS Cursor_Test;# MySQL returned an empty result set (i.e. zero rows).

DELIMITER $$

CREATE PROCEDURE Cursor_Test()
BEGIN

  DECLARE Project_Number_val VARCHAR( 255 );
  DECLARE Project_List_val VARCHAR(255);



  DECLARE no_more_rows BOOLEAN;
  DECLARE loop_cntr INT DEFAULT 0;
  DECLARE num_rows INT DEFAULT 0;


  DECLARE projects_cur CURSOR FOR
    SELECT Project_Id
    FROM Project_Details;


  DECLARE CONTINUE HANDLER FOR NOT FOUND
    SET no_more_rows = TRUE;


  OPEN projects_cur;
  select FOUND_ROWS() into num_rows;

  the_loop: LOOP

    FETCH  projects_cur
    INTO   Project_Number_val;


    IF no_more_rows THEN
        CLOSE projects_cur;
        LEAVE the_loop;
    END IF;

SET Project_List_val=CONCAT(`Project_Number_val`,'_List')

--

> ---> **Please check am I doing CONCAT correct here?**


Insert Into test (Panel_Id) select Panel_Id from Project_List_val where Project_Number_val='9';  

> --->**Is this taking 9_List as table name?**


    SET loop_cntr = loop_cntr + 1;
  END LOOP the_loop;


  select num_rows, loop_cntr;


END $$# MySQL returned an empty result set (i.e. zero rows).


DELIMITER 

有什么建議么? 大家好,

我在存儲過程中有一個名為Project_Number的變量,它是varchar類型的。

我的要求是“對於每個項目編號查詢表project_Number_List從列表中獲取結果並插入其他表中”

可以說,Project_Number可能像這樣,我需要查詢的22,21,34,43,434個對應表就是這樣的22_List,21_List,34_List .....

我正在使用游標遍歷Project_Number,但是我的問題是如何混合使用project_number和_list,即22_list來查詢表22_List

試試這個:

SET Project_List_val=CONCAT(Project_Number_val,'_List')
SET Project_List_val=CONCAT(Project_Number_val,'_List');

不要將單引號放在Project_Number_val中。

您的var調用錯誤,請嘗試以下操作:

 SET Project_List_val = CONCAT(Project_Number_val,'_List')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM