La función de grupo _concat es un grupo por función agregada que le permite concatenar los valores de columna de múltiples filas en un solo campo. Devuelve una cadena si el grupo establecido contiene un valor de columna o no nulo y devuelve un valor nulo si no se puede encontrar ninguno.
Este tutorial le enseñará cómo usar la función mysql group_concat () para combinar cadenas de un grupo con varias opciones.
Uso básico
Como hemos mencionado, esta función devuelve un resultado de cadena con los valores de los valores no nulos concatenados o un nulo si no existe ninguno.
La sintaxis general es:
Group_concat ([distinto] expr [, expr ...]Explicación
De la sintaxis anterior, puede ver que la función Group_concat utiliza cláusulas y restricciones mySQL para especificar las diversas opciones:
NOTA: El resultado de la cadena generado por la función mysql group_concat () se limita a una longitud el valor establecido en la variable Group_concat_max_len. Este valor se define en el sistema y tiene un valor predeterminado de 1024. Puede cambiar este valor a nivel mundial o configurarlo en la sesión que necesita.
Establecer [Global | Sesión] group_concat_max_len = valor;Considere la referencia a continuación para obtener más información:
https: // dev.mysql.com/doc/refman/8.0/en/servidor-system-variables.html#sysvar_group_concat_max_len
Cómo funciona: ejemplo
Permítame usar un ejemplo simple para explicar cómo funciona la función Group_concat (). Considere la tabla con un campo para Char como:
Crear concat de tabla (valor char);Insertemos valores en la tabla como se muestra en la consulta a continuación:
Insertar en valores de concat (valor) ('h'), ('e'), ('l'), ('l'), ('o');Si realizamos una operación BASIC Group_concat en los valores de la tabla, obtendremos un resultado de cadena como se muestra a continuación:
Seleccione Group_concat (orden de valor distinto por valor ASC separador "") de concat;El valor resultante es:
+---------------------------------------------------------------+¿Quieres otra forma de entender lo que sucedió con el resultado dado anteriormente??
Comenzamos eliminando todos los valores duplicados debido a la cláusula distinta mysql que elimina una l.
A continuación, procedemos al orden por orden ascendente como se define en (ASC), que altera la cadena en forma de
Helo -> EhloFinalmente, realizamos el proceso de concatenación utilizando un espacio como separador para los valores establecidos, lo que resulta en la cadena e h l o desde h, e, l o.
Ejemplo de casos de uso
Tomemos una base de datos real y la usemos para ilustrar cómo podemos implementar la función Group_concat (). En este ejemplo, utilizaremos la base de datos Sakila, y específicamente, la tabla de direcciones de la base de datos Sakila.
Considere el recurso a continuación para descargar la base de datos para sus ejemplos:
https: // dev.mysql.com/doc/index-other.html
En la tabla de direcciones de la base de datos de Sakila, obtendrá la columna del distrito. Podemos separar todos los distritos únicos por una tubería como se muestra en la consulta a continuación:
Seleccione Group_concat (orden distintivo de distrito por separador de distrito "|") de Sakila.límite de dirección 5;La consulta anterior mostrará todos los distritos distintos y los ordenará en orden ascendente separado por una tubería.
NOTA: La función group_concat () es una función agregada. Por lo tanto, se requiere que especifique el orden por instrucción dentro de la función y no en la instrucción SELECT.
Conclusión
La función mysql group_concat () discutida en este tutorial es una función útil que le permite crear datos únicos, ordenados y organizados de una tabla que puede contener duplicados y datos desordenados.
Considere los documentos o nuestros otros tutoriales MySQL para aprender más.