在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会生成字符串。我只是不知道如何使动态标签起作用。
我是否正在看准备好的陈述作为继续进行的方式?
在此先感谢您的帮助。
答案 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 |