当值大于特定字符数时,存储过程抛出错误

时间:2017-08-11 07:26:16

标签: php mysql stored-procedures

BEGIN

SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(questions= ''',
questions,
''', yes_no, NULL)) AS ''',
questions,''''
)
) INTO @sql
FROM tbl_main where task=in_task;
SET @sql = CONCAT('SELECT case_id,audited_by,resolved_by, ', @sql, ' FROM  tbl_main WHERE task IN  (''',in_task,''') and audited_date   between(''',from_date,''') and (''',to_date,''') GROUP BY   case_id,audited_by,resolved_by');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;


END

嗨,我正在使用存储过程,我正在动态地将行值转换为列标题,如果行值在50个字左右,存储过程可以正常工作,当行值超过50时,存储过程会失败的话。我不知道如何解决它。任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

设置会话group_concat_max_len = 5000;