Hola usuario de nuestra página, hallamos la respuesta a tu búsqueda, deslízate y la hallarás más abajo.
Solución:
Como ya escribí en un comentario anterior, el manual de MySQL dice:
Los valores en las columnas VARCHAR son cadenas de longitud variable. La longitud se puede especificar como un valor de 0 a 65.535.
Entonces, el problema no está en el tipo de datos del campo.
El manual de MySQL también dice:
El resultado se trunca a la longitud máxima proporcionada por la variable de sistema group_concat_max_len, que tiene un valor predeterminado de 1024. El valor se puede establecer más alto, aunque la longitud máxima efectiva del valor devuelto está restringida por el valor de max_allowed_packet. La sintaxis para cambiar el valor de group_concat_max_len en tiempo de ejecución es la siguiente, donde val es un entero sin signo: SET [GLOBAL | SESSION] group_concat_max_len = valor;
Sus opciones para cambiar el valor de group_concat_max_len son:
- cambiando el valor al inicio de MySQL agregando esto al comando:
--group_concat_max_len=your_value_here
- agregando esta línea en su archivo de configuración de MySQL (mysql.ini):
group_concat_max_len=your_value_here
- ejecutando este comando después del inicio de MySQL:
SET GLOBAL group_concat_max_len=your_value_here;
- ejecutando este comando después de abrir una conexión MySQL:
SET SESSION group_concat_max_len=your_value_here;
Documentación: SET, Variables del sistema del servidor: group_concat_max_len
Como mencionó Jocelyn, el tamaño de un GROUP_CONCAT()
el resultado está limitado por group_concat_max_len
sin embargo, hay una interacción adicional con ORDER BY
que da como resultado un truncamiento adicional a 1/3 de group_concat_max_len
. Para ver un ejemplo, vea esta respuesta relacionada.
El valor predeterminado para group_concat_max_len
es 1024, y 1024 / 3 = 341 probablemente explica por qué el tipo de concat_products aparece como varchar(341)
en el ejemplo original. Si fueras a quitar el GROUP BY productId
cláusula, concat_products debería aparecer como varchar(1024)
.
No he encontrado esta interacción entre GROUP_CONCAT()
y ORDER BY
mencionado en el Manual de MySQL, pero afecta al menos a MySQL Server 5.1.
Calificaciones y reseñas
Nos encantaría que puedieras recomendar este artículo si te fue de ayuda.