4

初学者的问题:我正在尝试使用 Java 来处理关系中两个不同属性的元组来处理 SQL(对于大学未评估的实用程序)。我与四个属性有关系,包括一种咖啡的名称、该周的销售额以及咖啡的总销售额。

我尝试创建的代码将使用新数据更新销售额和总计字段。它意味着同时获取totalSalesSales数组,添加它们,然后相应地更新关系中的两个属性。

到目前为止,这是我的代码(我已经删除了所有明显/不必要的代码):

String updateTotalString = "update COFFEES set TOTAL = ? set SALES = ? where COF_NAME = ?";

String [] coffees = {"Columbian", "Earl Grey", "Kenyan", "Nescafe"};
int [] totalSales = {400,650,340,1000};
int[] sales = {50,75,100,100};

updateTotal = con.prepareStatement(updateTotalString);
    for (int i = 0; i < len; i++)
    {
        updateTotal.setInt(1, (sales[i] + totalSales[i]));
        updateTotal.setInt(2, sales[i]);
        updateTotal.setString(3, coffees[i]);
        updateTotal.executeUpdate();
    }

不幸的是,运行它会给我一个 SQL 语法错误,主要集中在第一行 (the String updateTotalString)。我有一种感觉,这与我试图在一行中做两组并且语法错误有关。
有人可以帮帮我吗?

4

4 回答 4

7

使用,而不是多个SET

String updateTotalString = "update COFFEES set TOTAL = ?, SALES = ? where COF_NAME = ?";

更新的基本语法是

UPDATE tableName
SET colA = '',
    colB = '', .....
WHERE ....
于 2012-11-13T14:55:03.413 回答
1
String updateTotalString =  "update COFFEES set TOTAL = ? set SALES = ? where "
                            + "COF_NAME = ?";

在您的查询中,您使用set了两次关键字,这是不正确的语法。

相反,您应该使用comma多个值之间的 a 来设置。

String updateTotalString = "update COFFEES set TOTAL = ?, SALES = ? where COF_NAME = ?";
于 2012-11-13T14:55:31.623 回答
1

您的 Update 语法错误:

UPDATE `tableName`
SET
`col1` = ?,
`col2` = ?
WHERE somecondition;

检查MYSQL 更新语法

于 2012-11-13T14:56:50.577 回答
0

您的更新字符串应如下所示:

String updateTotalString = "update COFFEES set TOTAL = ?, SALES = ? where COF_NAME = ?";
于 2012-11-13T14:55:30.590 回答