MySQL从多个记录中合并1列[重复]

np8igboo  于 2023-01-01  发布在  Mysql
关注(0)|答案(1)|浏览(159)
    • 此问题在此处已有答案**:

Can I concatenate multiple MySQL rows into one field?(16个答案)
2天前关闭。
我有一个表,表_A:
| 转换数|伊波斯特|
| - ------| - ------|
| 阿001|无|
| 阿002| 1个|
| 阿003| 1个|
| 阿004| 1个|
| 阿005|无|
| 阿006| 1个|
我需要在一个变量中存储transnumbers,条件lpost = 0在MsSQl服务器中,我可以使用:

SELECT @var1=@var1+','+rtrim(table_A.Transnumber) FROM table_A where lpost=0

在MySQL中,我尝试:

Set @var1='';
Select concat(@var1,'-',Transnumber) into @var1 FROM table_A where lpost=0 ;

不管用
如何在MySQL中正确的语法?我期望的结果:第一个月

i86rm4rw

i86rm4rw1#

您可以使用group_concat来提供帮助。
考虑:

set @var1 = (select group_concat(transnumber) from table_A where lpost = 0);

之后:

select @var1;

给出:

这里有一个dbfiddle的例子。
编辑:
正如Akina所指出的,SELECT ... INTO ...也可以使用。
下面是一个使用此语法的示例:

SET @var1 = '';
select group_concat(transnumber) into @var1 from table_A where lpost = 0;

将给出相同的结果。请参见添加了第二个示例的updated fiddle

相关问题