我有一个如下程序
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;
现在我想将上述查询返回的项目ID插入到临时表中。
我对执行前编写插入查询的位置感到困惑。
请注意,我的要求与我在上面发布的查询不同。
如果用于形成@strSearchSQL
的条件和连接,我会使用很多。
我删除了这些以防止代码的复杂性。
答案 0 :(得分: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;