Mysql
 sql >> Datenbank >  >> RDS >> Mysql

GROUP_CONCAT MySQL-Anweisungsfehler

Wenn Sie sich Ihren Code ansehen (und hineinzoomen):

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

Sie werden diesen _ sehen und , sind schwarz, während sie als Teil der Schnur rot sein sollten. Das heißt, deine Saite ist dort "gerissen". Sie müssen also die einfachen Anführungszeichen mit '' maskieren :

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

Oder verwenden Sie doppelte Anführungszeichen für Zeichenfolgen, die einfache Anführungszeichen enthalten:

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

Jetzt ist der komplette String rot wie es sein sollte :-)

http://rextester.com/SLMU41976