mysql - 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’。
解决方案
像sql语句里面这样的标识符servingsMultiplier
,不会被识别为变量的值,而是被识别为列名,当然是不存在的。在语句中为and
使用?
占位符并传递它们的值,就像在子句中传递参数一样: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;";
推荐阅读
- intellij-idea - 带有 IntelliJ 的 MX Master 3 - 后退/前进按钮导致多次跳转
- javascript - 管理 Rcon 远程 web rust 服务器
- javascript - 使用代码访问辅助功能树
- android-studio - 在 Kotlin 中 Ping 一个外部 IP
- python - AWS + RDS 结果后端 celery
- azure-data-factory - 从 XML 到 Json 的转换会删除 Azure 数据工厂中的 0
- android - RxJava Flowable.zip 从不返回值
- apache-flink - 选择所有字段作为 json 字符串作为 Flink SQL 中的新字段
- html - 在 Bootstrap 中将 jumbotron 放置在旋转木马上
- flutter - 如何将函数传递给 Flutter 中的泛型函数参数?