MySQL-CONCAT-是否有任何方法可以连接字符串并将其用作变量?

时间:2018-11-05 03:21:40

标签: mysql variables concat

在mysql上工作时间很短,但是开始探究边缘。 Stackoverflow是一个很好的资源-谢谢大家。

与Concat进行实验我对这个问题不满意。我知道会有办法,但是我只是想不通。

我的示例:

set @strokes_hole_10 = 6;
set @x = 10;
set @strokes = concat('strokes_hole_',@x);
select @strokes;

我希望@strokes是变量值6,而不是变量值“ strokes_hole_10”。

我发现了很多有关使用concat的信息,大部分都是简单的示例,而且我知道concat会生成字符串。我只是不知道如何使动态标签起作用。

我是否正在看准备好的陈述作为继续进行的方式?

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您具有可变的列名,则需要使用Dynamic SQL

set @strokes_hole_10 = 6;
set @x = 10;
set @strokes = concat('@strokes_hole_',@x); -- add @ to variable string

-- generate the query string
set @query_str = CONCAT('SELECT ', @strokes);

-- prepare statement using the query string
Prepare stmt From @query_str;

-- executes the prepared statement
Execute stmt;

-- clean up after execution
Deallocate Prepare stmt;

结果

| @strokes_hole_10 |
| ---------------- |
| 6                |

View on DB Fiddle