Estoy usando GROUP_CONCAT()
una consulta MySQL para convertir varias filas en una sola cadena. Sin embargo, la longitud máxima del resultado de esta función son 1024
caracteres.
Soy muy consciente de que puedo cambiar el parámetro group_concat_max_len
para aumentar 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 ni editando ningún archivo de configuración.
Entonces mi pregunta es: ¿hay alguna otra forma de obtener el resultado de una consulta de varias filas en una sola cadena?
mysql
group-concat
ZeWaren
fuente
fuente
SET
declaración para cambiar una variable de sesión?Respuestas:
es una configuración temporal de ámbito de sesión. Solo se aplica a la sesión actual. Debe usarlo así.
Puede hacerlo incluso compartiendo alojamiento, pero cuando usa otra sesión, debe repetir el
SET SESSION
comando.fuente
SET GLOBAL group_concat_max_len=6999
El parámetro correcto para establecer la longitud máxima es:
value_numeric
debe ser> 1024; por defecto elgroup_concat_max_len
valor es 1024.fuente
group_concat_max_len
tan bajo como 4 . ( documentos de mysql ). "value_numeric
debe ser> = 4" es el caso aquí. De hecho, usé esto para probar qué sucede cuando superas elgroup_concat_max_len
valor.SET
consulta afectará la configuración después de un reinicio.Incluya esta configuración en el archivo de configuración xampp my.ini:
Luego reinicie xampp mysql
fuente
Puedes probar esto
fuente
La sintaxis 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.Siguiente línea:
SET objRS = objConn.Execute(mySQL)
sus variables pueden ser diferentes.entonces,
mySQL="SELECT GROUP_CONCAT(......);"
etc.Uso la última versión, ya que no tengo los privilegios para cambiar el valor predeterminado de 1024 a nivel mundial (usando cPanel).
Espero que esto ayude.
fuente
Esta consulta es un poco extraña, pero no necesita otra consulta para inicializar la variable; y se puede incrustar en una consulta más compleja. Devuelve todos los 'campos2 separados por punto y coma.
fuente