コードを見る(そしてズームインする)場合:
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'
);
_
が表示されます および,
は黒ですが、文字列の一部としては赤である必要があります。つまり、文字列はそこで「壊れている」ということです。したがって、''
で一重引用符をエスケープする必要があります :
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'
);
または、一重引用符を含む文字列には二重引用符を使用します:
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"
);
これで、文字列全体が赤になります:-)
http://rextester.com/SLMU41976