Concatenar linhas em uma única coluna no MySQL

146d atrás

0 0

Considere uma tabela com a seguinte estrutura:

CREATE TABLE UserPet (
    pet VARCHAR(255) NOT NULL,
    userId INT,
    PRIMARY KEY (userId, pet)
);

E os seguintes registros:

INSERT INTO UserPet VALUES ('Cachorro', 1);
INSERT INTO UserPet VALUES ('Gato', 1);
INSERT INTO UserPet VALUES ('Coelho', 1);
INSERT INTO UserPet VALUES ('Cachorro', 2);
INSERT INTO UserPet VALUES ('Tartaruga', 2);
INSERT INTO UserPet VALUES ('Gato', 3);
INSERT INTO UserPet VALUES ('Hamster', 3);

Nesse caso, se você quiser selecionar os pets de cada usuário agrupados uma única coluna, você poderia utilizar a seguinte query #MySQL:

SELECT GROUP_CONCAT(pet SEPARATOR ', ') pets, userId
FROM UserPet
GROUP BY userId;
Esse seria o resultado:

Você pode também concatenar os registros de apenas um usuário:

SELECT GROUP_CONCAT(pet SEPARATOR ', ') pets, userId
FROM UserPet
WHERE userId = 1;


Comentários (0)

0/512
Link