4

初心者の質問: Javaを使用してSQLを処理する関係で、2つの異なる属性からタプルを操作しようとしています(大学の未評価の実用的な場合)。私は、コーヒーの種類の名前、その週の売り上げ、コーヒーの総売り上げなど、4つの属性と関係があります。

私が作成しようとしているコードは、売上高と合計フィールドを新しい数値で更新します。これは、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構文エラーが発生しますString updateTotalString。1行で2セットを実行しようとしていて、構文が間違っているという事実に関係していると感じています。
誰かが私を助けることができますか?

4

4 に答える 4

7

,複数の代わりに使用SET

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

update の基本的な構文は次のとおりです。

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キーワードを2回使用しましたが、これは正しい構文ではありません。

むしろcomma、複数の値の間を使用して設定する必要があります。

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;

MYSQLUPDATE構文を確認してください

于 2012-11-13T14:56:50.577 に答える
0

更新文字列は次のようになります。

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