我正在移植一个我最初编写的应用程序,使用 PHP 和 MySQL 数据库在 Apache 上运行。其中一个查询使用 和 的 MySQL 函数,Concat_WS
首先Group_Concat
将几个不同的列连接成一个字符串,然后连接由Group_By
子句组合在一起的所有项目。
举个例子:
ID Name Candy
1 John M&Ms
1 John KitKat
查询:
Select Group_Concat(Concat_WS('-',Name, Candy) Separator '00--00') as UserCandy
From ExampleTable
Group By ID
结果:
UserCandy
John-M&Ms00--00John-KitKat
现在,我正在尝试使用 PHP 5.4+ 在 SQL Server 2008 中完成相同的结果。
我试过的:
SELECT Stuff(name + ';' + candy, 1, 0, '-----') AS UserCandy
FROM test
这个问题可以在我设置的小提琴中看到。
预期的结果是:
-----John;MMs-----John;KitKat
最后,当我在组合中添加更多列时,这变得更加困难。我想合并ID相同的结果(如上所示)。这很好用,group_concat
因为它会自动合并已经组合在一起的行。