MySQL 使用游标到 assemble 准备语句时的最后一行质询

MySQL last line challenge when using a cursor to assemble prepared statement

我正在使用游标来构建准备好的语句并且效果很好(实际上比预期的要好)。
但是我无法理解 "last line challenge" 我的想法暂时想打电话给它。

我需要在语句的最后一行添加一个伪造的 SELECT,这样查询就不会以 'semicolon'.

结尾
    OPEN cEmployeeSkill;

    -- loop through temp table
    getLine: LOOP
        FETCH cEmployeeSkill INTO vSkill;

        IF vFinished = 1 THEN
            SET @StatementTemp = CONCAT('MAX(CASE WHEN Skill_id = 0 THEN SkillLevelName END) AS \Dummy\' ');
            SET @StatementMain = CONCAT(@StatementMain,@StatementTemp);
            LEAVE getLine;
        END IF;

        -- get the current title of the skill
        SET @ColumnTitle = (SELECT SkillName FROM tbl_Skill WHERE Skill_id = vSkill GROUP BY SkillName LIMIT 1);

        -- do the pivot thing
        SET @StatementTemp = CONCAT('MAX(CASE WHEN Skill_id = ',vSkill,' THEN SkillLevelName END) AS \'',@ColumnTitle,'\', ');

        -- add the new line to the statment
        SET @StatementMain = CONCAT(@StatementMain,@StatementTemp);

    END LOOP getLine;

    CLOSE cEmployeeSkill;


关于如何避免添加 'dummy' 列的任何想法?

最后,把最后两个字符去掉,去掉最后一个逗号:

SET @StatementMain = LEFT(@StatementMain, LEN(@StatementMain)-2);