有没有什么方法可以把字符串压缩成一个变量?

r1zhe5dt  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(286)

mysql上的时间不多,但开始探测边缘。这是一个很好的资源-谢谢大家。
在试验concat时,我被这个问题搞砸了。我知道会有办法的,但我就是想不出来。
我的例子:

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

我希望@strokes是变量值6,而不是变量值“strokes\u hole\u 10”。
我发现了很多关于使用concat的信息,大部分都是直接的例子,我知道concat会产生一个字符串。我就是不知道如何让动态标签工作。
我是不是把准备好的声明当作前进的方向?
提前谢谢你的帮助。

0dxa2lsx

0dxa2lsx1#

如果有变量列名,则需要使用动态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                |

db fiddle视图

相关问题