mysql as 拼接变量_MySQL-CONCAT-有什么方法可以连接字符串并将其用作变量?

bd96500e110b49cbb3cd949968f18be7.png

Low hours on mysql but starting to probe the edges. Stackoverflow a great resource - thanks everyone.

Experimenting with Concat I fell over this issue. I know there will be a way but I just can't figure it out.

My example:

set @strokes_hole_10 = 6;

set @x = 10;

set @strokes = concat('strokes_hole_',@x);

select @strokes;

I looking for @strokes to be the variable value 6 rather than the variable value "strokes_hole_10".

I find lots of information on using concat, mostly straight forward examples and I know concat is resulting in a string. I just can't figure out how to make a dynamic label work.

Am I looking at prepared statements as the way to proceed?

Thanks in advance for any help.

解决方案

If you have variable column name, you will need to use 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;

Result

| @strokes_hole_10 |

| ---------------- |

| 6 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值