SELECT p.final_jujube_price FROM pms_product AS p WHERE p.id IN [1527109241798705863, 1595299088674512898, 1663812067305844737] ### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[1527109241798705863, 1595299088674512898, 1663812067305844737]' at
时间: 2023-10-16 09:55:33 浏览: 368
首先,根据报错信息来看,问题出在SQL语句中的参数占位符使用上。在你提供的SQL语句中,参数占位符使用的是中括号([ ])而不是正常的占位符格式。
正确的使用方式是使用问号(?)作为占位符,而不是使用中括号。请修改SQL语句中的参数占位符,将中括号替换为问号,如下所示:
```sql
SELECT p.final_jujube_price
FROM pms_product AS p
WHERE p.id IN (?, ?, ?)
```
然后,你可以在执行该SQL语句之前,将具体的参数值传入占位符所对应的位置,例如:
```java
// 假设你使用的是Java语言
List<Long> productIdList = Arrays.asList(1527109241798705863L, 1595299088674512898L, 1663812067305844737L);
String sql = "SELECT p.final_jujube_price FROM pms_product AS p WHERE p.id IN (?, ?, ?)";
PreparedStatement ps = connection.prepareStatement(sql);
for (int i = 0; i < productIdList.size(); i++) {
ps.setLong(i + 1, productIdList.get(i));
}
ResultSet rs = ps.executeQuery();
// 处理查询结果...
```
这样,你就可以正确地执行该SQL语句,并获取到结果了。记得根据你所使用的编程语言,调整代码中的语法和相关方法调用。
阅读全文