Tengo una función que se enumera a continuación. Cuando lo llamo con el LIMIT establecido en 0,60 como se ve a continuación, funciona bien. Sin embargo, siempre que aumente ese LÍMITE a 70 o superior, o incluso que elimine el LÍMITE, los errores de MySQL cuando llamo a la función con el error: "La fila 30153 fue cortada por GROUP_CONCAT()".MySQL "La fila 30153 fue cortada por GROUP_CONCAT()" error
He intentado aumentar los valores de varchar a 10 000, pero eso no ayuda. Por lo que puedo entender por el error, no parece que haya suficiente espacio en la variable para los contenidos. Pero como mencioné, he intentado aumentar el tamaño, pero no ayuda. ¿¿Algunas ideas?? Gracias
DELIMITER $$
DROP FUNCTION IF EXISTS `fnAlbumGetPhotoList` $$
CREATE DEFINER=`root`@`%` FUNCTION `fnAlbumGetPhotoList`(_albumId int) RETURNS varchar(2048) CHARSET utf8
BEGIN
DECLARE _outPhotoList VARCHAR(2048);
SET _outPhotoList = (
SELECT (CAST(GROUP_CONCAT(CONCAT(photoId, '|', photoFileName) separator '~') AS CHAR(10000) CHARACTER SET utf8)) AS recentPhotoList
FROM
(
SELECT photoId, photoFileName
FROM photo
WHERE photoAlbumId = _albumId
AND photoIsDisabled = 0
AND photoIsActive = 1
ORDER BY photoId DESC
LIMIT 0,60
) as subQuery
);
RETURN _outPhotoList;
END $$
DELIMITER ;
Gracias - Los resultados ya son distintos, así que traté de añadir esto en mi proc: 'SET GLOBAL group_concat_max_len = 15000;' ¿No hizo la diferencia sin embargo ?? ¿Es ese el uso correcto? – Cheeky
Consulte el manual (haga clic en "group_concat_max_len", es un enlace) para obtener una descripción completa. 15 000 parece algo pequeño, pruebe el valor máximo de su plataforma :) Lea también el tema GROUP_CONCAT, también tiene algo de información sobre el comportamiento y comentario sobre la variable max_allowed_packet. – ain
¡Oh, y deshazte del reparto CHAR (10000) - hace que el resultado sea más largo y por lo tanto causa problemas, no los soluciona! – ain