MySQL将一行乘以一个变量
我试图将一行乘以一个变量(计算量): 计算“servingsMultiplier”和“servingSizeMultiplier”的值 当我使用一个常数(例如,2)时,上述方法有效;但是,当我使用变量时,情况并非如此。我收到错误消息: “recipePDF中的SQLException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知 “字段列表”中的“servingsMultiplier”列MySQL将一行乘以一个变量,mysql,Mysql,我试图将一行乘以一个变量(计算量): 计算“servingsMultiplier”和“servingSizeMultiplier”的值 当我使用一个常数(例如,2)时,上述方法有效;但是,当我使用变量时,情况并非如此。我收到错误消息: “recipePDF中的SQLException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知 “字段列表”中的“servingsMultiplier”列 如果要使用mysql变量,请在
如果要使用mysql变量,请在变量名之前添加
@
SELECT ci_id, cr_id, ci_ingedient, (ci_amount*@servingsMultiplier) AS ci_amount,
(ci_unit*@servingSizeMultiplier) AS ci_unit
FROM at_cat_ingredient
WHERE cr_id = @id
ORDER BY ci_ingedient;
sql语句中的标识符(如
servingsMultiplier
)不会被识别为变量的值,而是作为列名,当然,列名并不存在。在语句中使用
?
占位符作为servingsMultiplier
和servingSizeMultiplier
的占位符,并传递它们的值,就像传递WHERE
子句中的参数一样:
String selectQry5 =
"SELECT ci_id, cr_id, ci_ingedient, " +
"(ci_amount * ?) AS ci_amount, " +
"(ci_unit * ?) AS ci_unit " +
"FROM at_cat_ingredient " +
"WHERE cr_id = ? " +
"ORDER BY ci_ingedient;";
这是某种应用程序代码
SELECT ci_id, cr_id, ci_ingedient, (ci_amount*@servingsMultiplier) AS ci_amount,
(ci_unit*@servingSizeMultiplier) AS ci_unit
FROM at_cat_ingredient
WHERE cr_id = @id
ORDER BY ci_ingedient;
String selectQry5 =
"SELECT ci_id, cr_id, ci_ingedient, " +
"(ci_amount * ?) AS ci_amount, " +
"(ci_unit * ?) AS ci_unit " +
"FROM at_cat_ingredient " +
"WHERE cr_id = ? " +
"ORDER BY ci_ingedient;";