MySQL y GROUP_CONCAT () longitud máxima

Estoy usando GROUP_CONCAT() en una consulta MySQL para convertir varias filas en una sola cadena. Sin embargo, la longitud máxima del resultado de esta función es 1024 caracteres.

Soy muy consciente de que puedo cambiar el param group_concat_max_len para boost este límite:

 SET SESSION group_concat_max_len = 1000000; 

Sin embargo, en el servidor que estoy usando, no puedo cambiar ningún parámetro. No utilizando la consulta anterior y no editando ningún archivo de configuración.

Entonces mi pregunta es: ¿hay alguna otra forma de obtener el resultado de una consulta de múltiples filas en una sola cadena?

 SET SESSION group_concat_max_len = 1000000; 

es una configuración temporal, de ámbito de sesión. Solo se aplica a la sesión actual. Debe usarlo así.

 SET SESSION group_concat_max_len = 1000000; select group_concat(column) from table group by column 

Puede hacerlo incluso compartiendo alojamiento, pero cuando usa otra sesión, necesita repetir el comando SET SESSION .

El parámetro correcto para establecer la longitud máxima es:

 SET @@group_concat_max_len = value_numeric; 

value_numeric debe ser> 1024; de forma predeterminada, el valor group_concat_max_len es 1024.

Incluya esta configuración en el archivo de configuración xampp my.ini:

 [mysqld] group_concat_max_len = 1000000 

Luego reinicie xampp mysql

 CREATE TABLE some_table ( field1 int(11) NOT NULL AUTO_INCREMENT, field2 varchar(10) NOT NULL, field3 varchar(10) NOT NULL, PRIMARY KEY (`field1`) ); INSERT INTO `some_table` (field1, field2, field3) VALUES (1, 'text one', 'foo'), (2, 'text two', 'bar'), (3, 'text three', 'data'), (4, 'text four', 'magic'); 

Esta consulta es un poco extraña, pero no necesita otra consulta para inicializar la variable; y puede ser incrustado en una consulta más compleja. Devuelve todos los ‘campos2 separados por punto y coma.

 SELECT result FROM (SELECT @result := '', (SELECT result FROM (SELECT @result := CONCAT_WS(';', @result, field2) AS result, LENGTH(@result) AS blength FROM some_table ORDER BY blength DESC LIMIT 1) AS sub1) AS result) AS sub2; 

La syntax correcta es mysql> SET @@global.group_concat_max_len = integer;
Si no tiene los privilegios para hacer esto en el servidor donde reside su base de datos, utilice una consulta como:
mySQL = "SET @@session.group_concat_max_len = 10000;" o un valor diferente.
Proxima linea:
SET objRS = objConn.Execute(mySQL) sus variables pueden ser diferentes.
entonces
mySQL="SELECT GROUP_CONCAT(......);" etc
Utilizo la última versión ya que no tengo los privilegios para cambiar el valor predeterminado de 1024 globalmente (usando cPanel).
Espero que esto ayude.

Puedes intentar esto

 SET GLOBAL group_concat_max_len = 1000000;