Вы должны использовать заполнитель в запросе для параметра. Это безопаснее, потому что защищает от инъекций SQL. Размещение дополнительных кавычек вокруг переменной при объединении не будет работать, если значение содержит кавычки.
@cabang = in_cabang;
SET @sql = CONCAT('SELECT bln_pkb,cabang,warna,gol,pkb, ', @sql, ', sum(vol_sub) as `count`
FROM t1pkbtm_ where cabang= ?
GROUP BY pkb ORDER BY bln_pkb,pkb,warna');
PREPARE stmt FROM @sql;
EXECUTE stmt USING @cabang;
Обратите внимание, что переменные, используемые в EXECUTE stmt USING
, должны быть переменными сеанса, поэтому вам нужно присвоить in_cabang
для @cabang
.