在mysql过程中的临时表中插入值

use*_*513 0 mysql stored-procedures procedure prepared-statement

我有一个如下的程序

DROP PROCEDURE IF EXISTS mp_search_result;
CREATE PROCEDURE mp_search_result()                                                   
BEGIN
      CREATE TEMPORARY TABLE temp_projids(projid int);

       SET @strSearchSQL = 'SELECT DISTINCT project_id
                             FROM tblProjects'; 

      PREPARE stmt FROM @strSearchSQL;
      INSERT INTO temp_projids(projid) values ();
      EXECUTE stmt;
      DEALLOCATE PREPARE stmt;       

END;
Run Code Online (Sandbox Code Playgroud)

现在我想将上述查询返回的项目ID插入临时表中.

我很困惑在执行之前在哪里编写插入查询.

请注意,我的要求与我在上面发布的查询不同.

如果条件和连接形成,我使用很多@strSearchSQL.

我删除了这些以防止代码的复杂性.

Ana*_*dke 5

DROP PROCEDURE IF EXISTS mp_search_result;
CREATE PROCEDURE mp_search_result()                                                   
BEGIN
      CREATE TEMPORARY TABLE temp_projids(projid int);

       SET @strSearchSQL = 'INSERT INTO temp_projids(projid)  SELECT DISTINCT project_id
                             FROM tblProjects'; 

      PREPARE stmt FROM @strSearchSQL;
      EXECUTE stmt;
      DEALLOCATE PREPARE stmt;       

END;
Run Code Online (Sandbox Code Playgroud)