Estou usando GROUP_CONCAT()
em uma consulta MySQL para converter várias linhas em uma única string. No entanto, o comprimento máximo do resultado dessa função é de 1024
caracteres.
Estou muito ciente de que posso alterar os parâmetros group_concat_max_len
para aumentar esse limite:
SET SESSION group_concat_max_len = 1000000;
No entanto, no servidor que estou usando, não consigo alterar nenhum parâmetro. Não usando a consulta anterior e não editando nenhum arquivo de configuração.
Portanto, minha pergunta é: Existe outra maneira de obter a saída de uma consulta de várias linhas em uma única string?
mysql
group-concat
ZeWaren
fonte
fonte
SET
declaração para alterar uma variável de sessão?Respostas:
é uma configuração temporária, com escopo de sessão. Isso se aplica apenas à sessão atual. Você deve usá-lo assim.
Você pode fazer isso mesmo no compartilhamento de hospedagem, mas quando você usa outra sessão, precisa repetir o
SET SESSION
comando.fonte
SET GLOBAL group_concat_max_len=6999
para fazer a válido configuração através de consultasO parâmetro correto para definir o comprimento máximo é:
value_numeric
deve ser> 1024; por padrão, ogroup_concat_max_len
valor é 1024.fonte
group_concat_max_len
mínimo de 4 . ( documentos do mysql ). "value_numeric
deve ser> = 4" é o caso aqui. Na verdade, usei isso para testar o que acontece quando você excede ogroup_concat_max_len
valor.SET
consulta afetará as configurações após uma reinicialização.Inclua esta configuração no arquivo de configuração xampp my.ini:
Em seguida, reinicie o xampp mysql
fonte
Você pode tentar isso
fonte
A sintaxe correta é mysql>
SET @@global.group_concat_max_len = integer;
Se você não tem privilégios para fazer isso no servidor em que seu banco de dados reside, use uma consulta como:
mySQL =
"SET @@session.group_concat_max_len = 10000;"
ou um valor diferente.Próxima linha:
SET objRS = objConn.Execute(mySQL)
suas variáveis podem ser diferentes.em seguida,
mySQL="SELECT GROUP_CONCAT(......);"
etceu uso a última versão desde que eu não ter os privilégios para alterar o valor padrão de 1024 globalmente (usando cPanel).
Espero que isto ajude.
fonte
Essa consulta é um pouco estranha, mas não precisa de outra para inicializar a variável; e pode ser incorporado em uma consulta mais complexa. Retorna todos os 'campos2' separados por ponto e vírgula.
fonte