Grupo _CONCAT A função é um grupo por função agregada que permite concatenar valores de coluna de várias linhas em um único campo. Ele retorna uma string se o grupo de conjuntos contiver um ou valor de coluna sem nulo e retorna um valor nulo se não puder ser encontrado.
Este tutorial ensinará como usar o MySQL group_concat () função para combinar strings de um grupo com várias opções.
Uso básico
Como mencionamos, essa função retorna um resultado de string com os valores dos valores não nulos concatenados ou nulos se não existir.
A sintaxe geral é:
Group_concat ([distinto] expr [, expr…]Explicação
Pela sintaxe acima, você pode ver que a função Group_Concat usa cláusulas e restrições MySQL para especificar as várias opções:
OBSERVAÇÃO: O resultado da string gerado pela função mysql group_concat () é limitado a um comprimento que o valor definido na variável group_concat_max_len. Este valor é definido no sistema e possui um valor padrão de 1024. Você pode alterar esse valor globalmente ou defini -lo na sessão que você precisa.
Conjunto [Global | Sessão] group_concat_max_len = value;Considere a referência abaixo para saber mais:
https: // dev.mysql.com/doc/refman/8.0/en/server-system-variáveis.html#sysvar_group_concat_max_len
Como funciona: exemplo
Permita -me usar um exemplo simples para explicar como funciona a função group_concat (). Considere a tabela com um campo para char como:
Crie a tabela Concat (Char Value);Vamos inserir valores na tabela, como mostrado na consulta abaixo:
Inserir em valores concat (value) ('h'), ('e'), ('l'), ('l'), ('o');Se executarmos uma operação BASIC GROUP_CONCAT nos valores da tabela, obteremos um resultado de string como mostrado abaixo:
Selecione Group_Concat (Ordem de Valor Distinto por Valor ASC separador "") de Concat;O valor resultante é:
+---------------------------------------------------------------+Você quer outra maneira de entender o que aconteceu com o resultado dado acima?
Começamos removendo todos os valores duplicados devido à cláusula distinta do MySQL que remove um l.
Em seguida, procedemos a ordem por ordem ascendente, conforme definido em (ASC), que altera a corda na forma de
Helo -> ehloFinalmente, realizamos o processo de concatenação usando um espaço como separador para os valores definidos, resultando na string e h l o de h, e, l, l o.
Exemplo de uso de casos
Vamos pegar um banco de dados real e usá -lo para ilustrar como podemos implementar a função group_concat (). Neste exemplo, usaremos o banco de dados Sakila e, especificamente, a tabela de endereços do banco de dados Sakila.
Considere o recurso abaixo para baixar o banco de dados para seus exemplos:
https: // dev.mysql.com/doc/índice-outro.html
Na tabela de endereços do banco de dados Sakila, você receberá a coluna do distrito. Podemos obter todos os distritos únicos separados por um cano, como mostrado na consulta abaixo:
Selecione Group_Concat (Ordem distinta do distrito por separador de distrito "|") de Sakila.Limite de endereço 5;A consulta acima exibirá todos os distritos distintos e os ordenará em ordem ascendente separados por um tubo.
OBSERVAÇÃO: A função group_concat () é uma função agregada. Portanto, é necessário que você especifique a ordem por instrução dentro da função e não na instrução SELECT.
Conclusão
A função mysql group_concat () discutida neste tutorial é uma função útil que permite criar dados exclusivos, classificados e organizados de uma tabela que possa conter duplicatas e dados não ordenados.
Considere os documentos ou nossos outros tutoriais do MySQL para saber mais.