Mysql
 sql >> Database >  >> RDS >> Mysql

Errore di istruzione mysql GROUP_CONCAT

Se guardi il tuo codice (e ingrandisci):

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

vedrai quel _ e , sono neri, mentre dovrebbero essere rossi come parte della stringa. Ciò significa che la tua stringa è "rotta" lì. Quindi devi evitare le virgolette singole 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'
    );

Oppure usa le virgolette doppie per le stringhe che contengono virgolette singole:

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

Ora la stringa completa è rossa come dovrebbe essere :-)

http://rextester.com/SLMU41976