sql >> Databasteknik >  >> RDS >> Mysql

GROUP_CONCAT mysql-satsfel

Om du tittar på din kod (och zoomar in):

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 kommer att se den _ och , är svarta, medan de ska vara röda som en del av snöret. Det betyder att din sträng är "trasig" där. Så du måste undkomma de enskilda citattecken 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 använd dubbla citattecken för strängar som innehåller enkla citattecken:

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 är hela strängen röd som den ska vara :-)

http://rextester.com/SLMU41976




  1. Fyller i valt inmatningsfält med värde från mysql

  2. MYSQL - Jämför NOW() och ett datum på Paris TimeZone i en förfrågan

  3. MySQL standardvärde som andra fälts värde

  4. Kontrollera statusen för databasens e-postköer i SQL Server (T-SQL)