tabelas Pivot em mysql com colunas dinâmicas
Esta pergunta aborda o desafio de criar tabelas mysql pivot com colunas dinâmicas. Embora a solução funcione de maneira eficaz quando o user_id é definido como uma string, ela falha ao encontrar valores inteiros. No entanto, para resolver o problema relacionado aos valores inteiros user_id, as correções estão na maneira como os nomes das colunas são construídos dentro da consulta sql dinâmica. Group_concat (distinto Concat ( 'Max (caso quando user_id =' '', ID do usuário, '' 'então pontue final) como', ID do usuário ) ) Em @sql
int user_id Os valores estão causando o problema, pois estão sendo usados diretamente como nomes de colunas. Para resolver isso, esses valores precisam ser embrulhados em backticks (`). O código corrigido ajusta o seguinte:
... Group_concat (distinto Concat ( 'Max (caso quando user_id =' '', ID do usuário, '' 'então pontue final) como `', user_id, '`' ) ) Em @sql
... GROUP_CONCAT(DISTINCT CONCAT( 'max(case when user_id = ''', user_id, ''' then score end) AS ', user_id ) ) INTO @sql
set @sql = null; Selecione Group_concat (distinto Concat ( 'Max (caso quando user_id =' '', ID do usuário, '' 'então pontue final) como `', user_id, '`' ) ) Em @SQL Da medida2; Set @sql = concat ('selecione inspeção_date,', @sql, ' Da medida2 Grupo por inspeção_date '); Prepare o STMT do @SQL; Executar sTMT; Deallocate Prepare STMT;
... GROUP_CONCAT(DISTINCT CONCAT( 'max(case when user_id = ''', user_id, ''' then score end) AS `', user_id, '`' ) ) INTO @sql
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3