我需要一些关于执行存储在表列中的表达式(按位)的帮助。
输入:
ID | expression
----|-------------
1 | 1&0
2 | (1&1)|(0&1)
期望输出:
ID | expression | value
----|-------------|-------
1 | 1&0 | 0
2 | (1&1)|(0&1) | 1
我正在尝试下面这样的操作,但它没有执行表达式。
PREPARE stmt from 'select ? into @outvar';
set @invar = '1&0';
execute stmt using @invar;
select @outvar;
上面的输出为1&0,但所需的输出为0。
实际上,我想将输出存储在一个变量中,就像我上面的伪代码中的框架一样。
2条答案
按热度按时间cgyqldqp1#
使用预先准备好的语句,第二轮发送到服务器的内容按字面意思处理。它们不能是sql的一部分。不应为此使用占位符:
qpgpyjmq2#
我已经给你建立了一个程序
结果:
call sp_test10(1,@result)
返回0call sp_test10(2,@result)
返回1http://rextester.com/live/smlb31207