MySQL "Row 30153 was cut by GROUP_CONCAT()"错误

标签 mysql

我有一个下面列出的功能。当我将 LIMIT 设置为 0,60 时调用它,如下所示,它工作正常。但是,每当我将 LIMIT 增加到 70 或更高,甚至删除 LIMIT 时,MySQL 都会在我调用函数时出错,并出现错误:“Row 30153 was cut by GROUP_CONCAT()”。

我已尝试将 varchar 值增加到 10 000,但这无济于事。 据我从错误中了解到,它们在变量中似乎没有足够的空间容纳内容。但是就像我提到的那样,我尝试增加尺寸,但没有帮助。有任何想法吗??谢谢

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 ;

最佳答案

您可以设置 group_concat_max_len变量到更大的值。或者使用 GROUP_CONCAT(DISTINCT ...)缩短结果。

关于MySQL "Row 30153 was cut by GROUP_CONCAT()"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208773/

相关文章:

mysql - mysql 数据库中用于在数据库中插入 CSV 文件的以下命令的等效命令是什么

mysql - 编辑MySQL系统表

php - 使用 PHP 动态显示选项值

php - sql查询有问题

mysql - JDBC 批量插入性能

php - 加入两个查询,一个包含简单选择,一个包含函数?

mysql - 尝试使用sql命令导入数据库?

java - 实时网络跟踪应用程序

php 安全和使用 html 链接 (GET) 标记要删除的 mysql 记录

php - 存储多个 bool 值的字段