创建一个MySQL函数

创建一个MySQL函数,mysql,sql,mysql-function,Mysql,Sql,Mysql Function,在mysql数据库中,我有两个表“品牌”和“型号” 我想写一个函数,让我可以像这样显示requet的结果: Brand_name model_name brand_1 model_1_1, model_1_2, model_l_3 brand_2 model_2_1, model_2_2, model_2_3 您可以使用group\u concat功能: select b.id, max(brand_name), group_concat(mode

在mysql数据库中,我有两个表“品牌”和“型号

我想写一个函数,让我可以像这样显示requet的结果:

Brand_name      model_name
brand_1         model_1_1, model_1_2, model_l_3
brand_2         model_2_1, model_2_2, model_2_3  

您可以使用
group\u concat
功能:

select b.id, max(brand_name), group_concat(model_name)
from brands b join models m
on b.id = m.idBrand
group by b.id;
或者,如果不想选择id,这也是有效的:

select brand_name, group_concat(model_name)
from brands b join models m
on b.id = m.idBrand
group by brand_name;

如果要返回一整套数据,则可以创建以下过程:

CREATE procedure test_proc ()

BEGIN

 select brand_name, group_concat(model_name) model_name
 from brands b join models m
 on b.id = m.idBrand
 group by brand_name;

END
这样称呼它:

call test_proc();

因为正如您在这里看到的:函数无法返回此类数据…

您可以使用group\u concatMysql函数获得所需的结果,如下所示:

Select br.brand_name, 
group_concat(mod.model_name SEPARATOR ',') AS model_name
from brands br join models mod
on br.id = mod.idBrand
group by br.brand_name; 

我希望这有帮助

嗨@brahimzaid,我希望这个答案能帮助你。我注意到你没有接受你先前问题的任何答案。帮助你回答问题的人会希望从你那里得到积极的反馈。你们可以这样做:所以,若答案有帮助,你们可以放弃投票,若答案正确,你们可以接受。你也可以投一张有用的票,然后接受它。干杯完美答案。我喜欢!我已经给你投票了。我可以在程序或函数中写下这个请求吗?为什么,请解释你打算如何使用它?您好@brahimzaid,您可以看到,我已经更新了我的答案。这是否回答了你的问题?为什么你需要函数?你的确切问题是什么?到目前为止,你有没有试过什么还不起作用的东西?然后请共享示例输入数据、匹配的预期数据以及您的尝试
Select br.brand_name, 
group_concat(mod.model_name SEPARATOR ',') AS model_name
from brands br join models mod
on br.id = mod.idBrand
group by br.brand_name;