首页 > 解决方案 > MySQL将一行乘以一个变量

问题描述

我试图将一行乘以一个变量(计算量):

double servingsMultiplier = 1;
double servingSizeMultiplier = 1;

计算“servingsMultiplier”和“servingSizeMultiplier”的值。

  String selectQry5 = ("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 = ? " +
            " ORDER BY ci_ingedient;");

当我使用常量(例如,2)时,上述方法有效;但是,不是当我使用变量时。我收到错误消息:

“recipePDF 中的 SQLException:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:‘字段列表’中的未知列‘servingsMultiplier’。

标签: mysql

解决方案


像sql语句里面这样的标识符servingsMultiplier,不会被识别为变量的值,而是被识别为列名,当然是不存在的。在语句中为and
使用?占位符并传递它们的值,就像在子句中传递参数一样:servingsMultiplierservingSizeMultiplierWHERE

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;";

推荐阅读