Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql:使用COALESCE以逗号分隔的格式选择多个行值_Mysql_Sql Server - Fatal编程技术网

mysql:使用COALESCE以逗号分隔的格式选择多个行值

mysql:使用COALESCE以逗号分隔的格式选择多个行值,mysql,sql-server,Mysql,Sql Server,这是mssql版本: PROCEDURE [dbo].[GetBranchIds] @WebsiteId INT, @BranchIds VARCHAR(1000) OUTPUT AS BEGIN SELECT @BranchIds = COALESCE(@BranchIds + ',', '') + CAST(BranchId AS VARCHAR) FROM Dealer WITH (NOLOCK) WHERE WebsiteId = @Website

这是mssql版本:

PROCEDURE [dbo].[GetBranchIds]
    @WebsiteId INT,
    @BranchIds VARCHAR(1000) OUTPUT
AS
BEGIN
    SELECT @BranchIds = COALESCE(@BranchIds + ',', '') + CAST(BranchId AS VARCHAR)
    FROM Dealer WITH (NOLOCK)
    WHERE WebsiteId = @WebsiteId
END
经销商表有以下列: branchid,网站ID。在该SP的输出变量中,我们得到如下分支ID: 126512651265,5,5,5

我正在将其转换为mysql,我尝试了:

PROCEDURE `GetBranchIds`(
v_WebsiteId int,
out BranchIds varchar(1000))
BEGIN
    set @BranchIds := null;

    select @BranchIds := (CONCAT(COALESCE(CONCAT(BranchIds,','), ''),BranchId))
    from dealer
    where websiteid = v_WebsiteId;
END
但我在不同的行中得到输出,即第1行中的1265,第2行中的1265,依此类推。我希望以逗号分隔的格式输出,如126512651265,5,5,5。我在mysql版本中做错了什么?

尝试使用group_concat()函数:


我认为应该使用group_concat()函数
select group_concat(BranchId) INTO @BranchIds
from dealer where websiteid = v_WebsiteId;