在查询中执行预准备语句

时间:2013-08-15 13:57:25

标签: mysql prepared-statement

我有下面这段代码。我想使用来自变量数据的计算数据填充KPI_RESULTS表。可变数据接收不同的公式。例如(n1 * n7)* 100,取决于工程师对KPI公式的定义。 n1 ---- n!是列名。

但是当我尝试执行以下脚本时出现错误。

enter code here

set @data = 'n2/n1';
set @s = Concat("select datetime , element NODE,",@data," RESULTS from loas");
PREPARE STMT FROM @s;

INSERT INTO KPI_results(date_time,node_name,results) values(execute STMT );

1 个答案:

答案 0 :(得分:0)

遗憾的是,不支持。您必须预先编译要运行的动态生成的INSERT查询:

mysql> set @formula='n2/n1'
mysql> set @sql = CONCAT('INSERT INTO KPI_results SELECT foo, bar, ', @formula, ' FROM t')
mysql> PREPARE stmt FROM @sql
mysql> EXECUTE stmt