首页 文章

在Mysql Perpared语句中增加set变量长度

提问于
浏览
2
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 回答

  • 8

    听起来你对GROUP_CONCAT_MAX_LEN有疑问 . 您可以在会话期间调整此变量的长度 .

    此变量的默认长度为1024.您应该能够使用:

    set session group_concat_max_len = yourNewValue;
    

    如果您要全局设置它会影响所有其他连接,这就是您可能只想为会话设置它的原因 .

相关问题