Sat*_*abu 2 mysql prepared-statement
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变量的无限字符长度.请指教.
听起来你有问题GROUP_CONCAT_MAX_LEN.您可以在会话期间调整此变量的长度.
此变量的默认长度为1024.您应该能够使用:
set session group_concat_max_len = yourNewValue;
Run Code Online (Sandbox Code Playgroud)
如果您要全局设置它会影响所有其他连接,这就是您可能只想为会话设置它的原因.