Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro de instrução GROUP_CONCAT mysql


Se você olhar para o seu código (e ampliar):
SET @sql = CONCAT('SELECT id_c, students,', @sql, '
        [..]
                CONCAT(B.`code`, '_', A.id_a) col,
                CONCAT(D.value_m, ',', D.value_n) val
        [..]
        GROUP BY id_c'
    );

você verá que _ e , são pretos, enquanto eles devem ser vermelhos como parte da string. Isso significa que sua string está "quebrada" lá. Então você precisa escapar das aspas simples com '' :
SET @sql = CONCAT('SELECT id_c, students,', @sql, '
        [..]
                CONCAT(B.`code`, ''_'', A.id_a) col,
                CONCAT(D.value_m, '','', D.value_n) val
        [..]
        GROUP BY id_c'
    );

Ou use aspas duplas para strings que contêm aspas simples:
SET @sql = CONCAT('SELECT id_c, students,', @sql, "
        [..]
                CONCAT(B.`code`, '_', A.id_a) col,
                CONCAT(D.value_m, ',', D.value_n) val
        [..]
        GROUP BY id_c"
    );

Agora a string completa é vermelha como deveria ser :-)

http://rextester.com/SLMU41976