mysql - 在 Mysql Prepared 语句中增加设置的变量长度

标签 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 变量只存储了一些有限的字符。 在这里,我正在动态连接字符串。 我不知道 future 字符串的确切总长度。我的问题是我们如何将无限字符长度设置为 $sql1 变量。请指教。

最佳答案

听起来您的 GROUP_CONCAT_MAX_LEN 有问题.您可以在 session 期间调整此变量的长度。

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

set session group_concat_max_len = yourNewValue;

如果你要全局设置它会影响所有其他连接,这就是为什么你可能只想为你的 session 设置它。

关于mysql - 在 Mysql Prepared 语句中增加设置的变量长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16917567/

相关文章:

sql - 哪个 RDBMS 或其他工具提供了良好的 SQL 语法错误消息?

php - MySQL 选择其中列为 false 的位置

java - 处理来自 BatchUpdateException 的多个错误

java - Java 中的PreparedStatement 问题针对Oracle

php - 尝试在一个查询中将数据插入 MySQL 表,但更改一个特定列

php - 如何使用 bind_result 与 get_result 的示例

php - 如何在 MySQL 中选择除一个以外的所有不同值?

mysql - 如何在Mysql中为MUL键创建索引?

javascript - 标记视频不适用于 onmouseover 和 onvideoout

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?