i have a problem with a query
SELECT usuarios.UsuarioId, usuarios.UsuarioNombre,
usuarios.UsuarioFechaRegistro, usuarios.UsuarioFecha,
usuarios.UsuarioCompartir, usuarios.UsuarioPrivacidad,
usuarios.UsuarioAvatar, usuarios.PlataformaDefecto,
GROUP_CONCAT( DISTINCT usuarios_plataformas.PlataformaId) as Plataformas,
CONCAT('[', GROUP_CONCAT(
DISTINCT CASE WHEN follows.UsuariosSiguiendo = usuarios.UsuarioId
THEN (SELECT CONCAT('{"UsuarioNombre":"', usuarios.UsuarioNombre, '", "UsuarioId":"', usuarios.UsuarioId, '"}')
FROM usuarios
WHERE UsuarioId = follows.UsuariosSeguido) END), ']') as Siguiendo,
CONCAT('[', GROUP_CONCAT(
DISTINCT CASE WHEN follows.UsuariosSeguido = usuarios.UsuarioId
THEN (SELECT CONCAT('{"UsuarioNombre":"', usuarios.UsuarioNombre, '", "UsuarioId":"', usuarios.UsuarioId, '"}')
FROM usuarios
WHERE UsuarioId = follows.UsuariosSiguiendo) END), ']') as Seguido
FROM (`usuarios`)
LEFT JOIN `usuarios_plataformas` ON `usuarios_plataformas`.`UsuarioId` = `usuarios`.`UsuarioId`
LEFT JOIN `follows` ON `follows`.`UsuariosSiguiendo` = `usuarios`.`UsuarioId`
OR follows.UsuariosSeguido = usuarios.UsuarioId
WHERE `UsuarioNombre` = '50l3r'
GROUP BY `usuarios`.`UsuarioId`
Query returns me this result: http://gyazo.com/92687af3657239bd7c069ed165c5253c
In my query, i formated results as json. But in "Siguiendo","Seguido" columns, results split for a limit characters.
muchs thanks for your help
That's because you're using GROUP_CONCAT() and it has restriction for string length, which is formed by it. This is group_concat_max_len - so you should adjust it to fit your task. - but be aware that it can't overcome max unsigned longint in any case (that's
4294967295
for32-bit
systems and18446744073709547520
for64-bit
systems)You can dynamically change limit via
However, there's another more common max_allowed_packet restriction. It restricts the maximum size of one packet or any generated/intermediate string, so it should fit your issue too.