-1

我正在尝试根据我指定为参数的任何数字在存储过程中循环选择结果集。

例子。

DELIMITER |
CREATE PROCEDURE Say_ma_name(IN number INT)
BEGIN
    DECLARE v_counter INT DEFAULT 0;
    DECLARE v_name CHAR;
    SELECT name INTO v_name FROM Table WHERE id = number;

现在假设名称 SELECTED 是“Bob”。我想从这里生成一个返回的结果集:

    Bob, Bob, Bob

我的脚本的其余部分如下所示:

    REPEAT
        SELECT CONCAT_WS(',',v_name);
        SET v_counter = V_counter + 1;
    UNTIL v_counter > number END REPEAT;
END |
DELIMITER ;

CALL Say_ma_name(1);

对于那些关注的人,这将返回三(3)个单独的结果集,每个结果集都包含 Bob。我试图通过一个结果来实现这一切。问候。

4

1 回答 1

0

因此,您需要创建一个中间字符串值:

SET @result = '';
REPEAT
    SET @result = CONCAT(@result, ',');
    SET v_counter = V_counter + 1;
UNTIL v_counter > number END REPEAT;

SELECT TRIM(TRAILING ',' FROM @result); 
于 2012-09-07T01:01:56.897 回答