sql >> Base de Datos >  >> RDS >> Mysql

Error de declaración GROUP_CONCAT mysql

Si miras tu código (y haces zoom):

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'
    );

verás que _ y , son negros, mientras que deberían ser rojos como parte de la cuerda. Eso significa que su cadena está "rota" allí. Por lo tanto, debe escapar de las comillas simples con '' :

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'
    );

O use comillas dobles para las cadenas que contienen comillas 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"
    );

Ahora la cadena completa es roja como debería ser :-)

http://rextester.com/SLMU41976