首页 > 解决方案 > 使用带有 LIKE 的 java 准备好的语句

问题描述

我想使用带有 LIKE 关键字的 java 准备语句。我正在尝试匹配日期字符串。这是我的代码。

String summaryChooser = "SELECT * FROM PRODUCT p, CODE_COVERAGE_SUMMARY s WHERE "
                    + " p.product_id = s.product_id AND p.product_id = ? AND s.date LIKE ? "
                    + " ORDER BY s.date DESC LIMIT 1 ";
ps = dbConnection.prepareStatement(summaryChooser);
ps.setInt(1, productsResult.getInt("product_id"));
ps.setString(2,  "%" + date + "%");

它给出了以下例外。

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '? 附近使用的正确语法。AND s.date LIKE ? ORDER BY s.date DESC LIMIT 1' 在第 1 行

标签: javamysqlprepared-statementsql-like

解决方案


我可以通过这样做使其工作。

ps.setString(2, date + "%");

感谢大家 :)


推荐阅读