Pokud se podíváte na svůj kód (a přiblížíte):
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'
);
uvidíte, že _
a ,
jsou černé, zatímco by měly být červené jako součást provázku. To znamená, že vaše struna je tam "přerušená". Jednoduché uvozovky tedy musíte uvozovat pomocí ''
:
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'
);
Nebo použijte dvojité uvozovky pro řetězce, které obsahují jednoduché uvozovky:
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"
);
Nyní je celý řetězec červený, jak má být :-)
http://rextester.com/SLMU41976