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

GROUP_CONCAT mysql-sætningsfejl

Hvis du ser på din kode (og zoomer ind):

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

du vil se den _ og , er sorte, mens de skal være røde som en del af snoren. Det betyder, at din streng er "brudt" der. Så du skal undslippe de enkelte anførselstegn med '' :

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

Eller brug dobbelte anførselstegn for strenge, der indeholder enkelte anførselstegn:

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

Nu er hele strengen rød, som den skal være :-)

http://rextester.com/SLMU41976




  1. Hvordan sorterer man array-liste i zig-zag i PHP?

  2. Lagring af specialtegn i DB på en sådan måde, at de vises korrekt på stedet og stadig finder billede med samme navn

  3. MySQL LAG/LEAD problem

  4. Brug af DMV ( Dynamic Management View ) og DMF  ( Dynamic Management Function ) | SQL Server Performance Fejlfinding -4