Mysql
 sql >> Base de données >  >> RDS >> Mysql

GROUP_CONCAT erreur d'instruction mysql

Si vous regardez votre code (et zoomez) :

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

vous verrez que _ et , sont noirs, alors qu'ils devraient être rouges dans le cadre de la chaîne. Cela signifie que votre chaîne est "cassé" là. Vous devez donc échapper les guillemets simples avec '' :

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 utilisez des guillemets doubles pour les chaînes contenant des guillemets 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"
    );

Maintenant, la chaîne complète est rouge comme il se doit :-)

http://rextester.com/SLMU41976