MySQL存储函数-追加字符串

MySQL存储函数-追加字符串,mysql,variables,append,stored-functions,Mysql,Variables,Append,Stored Functions,我已经搜索过了,但找不到任何符合我需要的东西。 我想创建一个存储函数,该函数将从辅助字段收集数据,并返回以逗号分隔的项目列表作为返回字符串。我似乎找不到任何方法来获取我在函数中创建的变量,并遍历一个记录集,然后将每个结果附加到该变量,以便返回它。。见下文: BEGIN DECLARE searchCat INT; DECLARE searchProd INT; DECLARE metas CHAR; SET searchCat = cat; SET sea

我已经搜索过了,但找不到任何符合我需要的东西。 我想创建一个存储函数,该函数将从辅助字段收集数据,并返回以逗号分隔的项目列表作为返回字符串。我似乎找不到任何方法来获取我在函数中创建的变量,并遍历一个记录集,然后将每个结果附加到该变量,以便返回它。。见下文:

BEGIN
    DECLARE searchCat INT;
    DECLARE searchProd INT;
    DECLARE metas CHAR;
    SET searchCat = cat;
    SET searchProd = prod;
    SELECT * FROM offer_metas WHERE category = searchCat AND offer_id = searchProd
        gatherMeta: LOOP
                metas = metas + "," + meta_option;
                ITERATE gatherMeta;
        END LOOP gatherMeta;
    RETURN metas;
END
函数不会保存,因为我的语法是“metas=metas+meta_选项;”。 我要寻找的是将当前字段falue“meta_option”附加到当前变量“metas”的命令,这样我就可以在末尾返回完整的列表

有什么想法吗

更新-解决方案

BEGIN
    DECLARE metas VARCHAR (300);

    SELECT GROUP_CONCAT(CONCAT(mn.title,'=',offer_metas.meta_option) ORDER BY mo.cat_seq ASC) INTO metas
    FROM offer_metas
    LEFT JOIN meta_options as mo ON mo.id = offer_metas.meta_option
    LEFT JOIN meta_names AS mn ON mn.category = mo.category AND mn.seq = mo.cat_seq 
    WHERE offer_metas.category = searchCat
    AND offer_metas.offer_id = searchProd
    ORDER BY cat_seq ASC;

    RETURN metas;
END
然后我刚刚更新了我的SQL查询,如下所示(1是我在PHP中的报价类别,并填充到查询中):

为什么不

SELECT GROUP_CONCAT(meta_option SEPARATOR ',')
FROM offer_metas
WHERE category = searchCat AND offer_id = searchProd;
为什么不

SELECT GROUP_CONCAT(meta_option SEPARATOR ',')
FROM offer_metas
WHERE category = searchCat AND offer_id = searchProd;
选项1)使用

备选方案2)

选项3)使用Concat()

选项1)使用

备选方案2)


选项3)使用Concat()

我最终还是使用了Group\u Concat。。似乎在功能范围内工作,一切正常。我的答案已更新为我的最终查询。我最终还是使用了Group_Concat。。似乎在功能范围内工作,一切正常。我的答案已更新为我的最终查询。