set @sql1 = '';
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(field_id = ''',
field_id,
''', value, NULL)) AS `',
field_id,'`'
)
) INTO @sql1
FROM content_details;
SET @sql1 = CONCAT('SELECT ', @sql1, ' FROM content_details GROUP BY content_id');
select @sql1;
PREPARE stmt FROM @sql1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
在上面的代码中,@ sql1变量仅存储一些有限的字符 . 这里我动态地连接字符串 . 我不知道将来会发生的弦的确切总长度 . 我的问题是我们如何设置$ sql1变量的无限字符长度 . 请指教 .
1 回答
听起来你对GROUP_CONCAT_MAX_LEN有疑问 . 您可以在会话期间调整此变量的长度 .
此变量的默认长度为1024.您应该能够使用:
如果您要全局设置它会影响所有其他连接,这就是您可能只想为会话设置它的原因 .