使用 concat() 构建列别名

Using concat() to build a column alias name

我正在使用 concat() 创建列名的名称:

set @var = 10;
select col as concat("str1", cast(@var as CHAR), "str2") from table1;

但我收到以下语法错误:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ('str1', cast(@var as char), 'str2')

我做错了什么?

尝试:

SET @var := 10;

SET @`sql` := CONCAT('select col as ',
                     'str1', cast(@var as CHAR), 'str2',
                     ' from table1');

PREPARE `stmt` FROM @`sql`;
EXECUTE `stmt`;
DEALLOCATE PREPARE `stmt`;