web-dev-qa-db-fra.com

Quelle est l'allocation maximale pour group_concat_max_len dans MySQL?

J'utilise un group_concat pour concaténer un grand nombre de lignes en une seule.

J'ai mis le groupe concat à 10000 en utilisant:

SET group_concat_max_len = 10000;

Mais même alors, mes cellules de sortie restent incomplètes et se terminent par ...

J'ai essayé de définir group_concat_max_len = 20000 et même cela n'a pas aidé.

J'ai également essayé de définir group_concat_max_len sur 99999999. Il ne termine toujours pas mon texte de sortie. Et j'ai vérifié l'un des arrêts de concaturation de groupe à Longueur = 230 caractères, puis donne ...

Est-ce qu'il y a un autre moyen?

16
user3422637

Consultez ce lien: https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_group_concat_max_len

Toutes les variables de configuration MySQL sont documentées sur cette page, avec des détails tels que minimum, maximum, valeur par défaut, si vous pouvez les définir globalement ou par session, si vous pouvez les modifier sur une instance en cours d'exécution ou si cela nécessite un redémarrage, etc. description de l'utilisation.

La valeur maximale pour group_concat_max_len est 18446744073709551615.

La chaîne group-concat ne se termine pas par "..." Si vous essayez de grouper trop de texte, il est simplement tronqué. Je me demande donc si le problème n'est pas avec les paramètres de MySQL, mais avec l'affichage de vos cellules.

29
Bill Karwin

Pour les systèmes 32 bits, la valeur maximale est 4294967295

Pour les systèmes 64 bits, la valeur maximale est 18446744073709551615.

Vous pouvez définir la variable de votre session en cours en utilisant

SET SESSION group_concat_max_len=4294967295;

Pour définir la variable pour toujours

SET GLOBAL group_concat_max_len=4294967295;

(voir http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len )

12
Justin Levene