ceci est une version mssql:mysql: sélectionner plusieurs valeurs de ligne au format séparés par des virgules utilisant COALESCE
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
table Dealer a colonne suivante: BRANCHID, websiteid. Dans la variable de sortie de ce SP, nous obtenons la branche ids comme: 1265,1265,1265,5,5,5
Je suis en train de convertir cela mysql, j'ai essayé:
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
Mais j'obtenir une sortie dans différentes rangées, soit 1265 au 1er rang, 1265 au 2e rang et ainsi de suite. Je veux la sortie dans le format séparé par virgule comme 1265,1265,1265,5,5,5. Qu'est-ce que je fais mal dans la version mysql ici?
Je pense que vous devriez utiliser la fonction group_concat() –