2017-07-17 10 views
0

値を追加または削除して、新しい値でテーブルを更新しようとしています。 私には5ポイントのエージェントがいるとします。私は新しい行を追加したくない、または既存の値を別の5点を言うという新しい値で書き込む。私はそれが5 - 5点の5 + 5点になりたい。列の値を更新します。追加またはサブタイトルで値を更新する

これまでのところ私は

("Insert Into Bee_Sheet(Agents_Name, Points, Date_added)Values(" + AN + "','" + PNumber + "','" + DateTime.Now + "') ON DUPLICATE KEY UPDATE Points=VALUES(Points)-VALUES(PNumber) 

を発見したが、私たちはADで持っている薬の名前である私のANに出エラー。最初に使用する名前の近くに構文エラーがあることを伝えます。最後の名前体系。これは外に影響を与えるべきではありません。

私の質問は、SQLコマンドを書き換えて特定の値を値に追加または削除してから更新できるようにする最もよい方法は何ですか?

詳細が必要な場合はお知らせください。

+5

私が最初に推奨するのは、値を連結してSQLコマンドを作成する代わりに、パラメータを使用することです。私は問題はあなたが 'AN'の前に一重引用符を持たないということですが、引用符を必要としないときや気にする必要がないときには、パラメータを使って心配する必要はありません。 – juharr

+2

あなたは構文エラーについてもっと心配していませんか?それがあなたの数学の問題より重要だと思われます。その問題に対する答えは、SQLを構成しないことです。パラメータまたはMySQLがそれらを呼び出すものを使用してください。 – hoodaticus

+1

私はあなたの質問で混乱しています。あなたは "私は新しい行を追加したい、または既存の値を新しい値で書きたくない"と言っていますが、あなたのサンプルSQLは正確にそうです。 – maccettura

答えて

0

構文エラー:「AN」値の前にある一重引用符が見つからないことがありました。

実際の値の更新については、あなたが正しい軌道にいるように見えます。もちろん、Bee_Sheetテーブルにunique indexまたはprimary keyがあるとします。ユニークなインデックスまたはpkeyを持っていない場合、クエリは挿入を行うだけです。

私の唯一の提案は、あなたのUPDATEがおそらく、それを引くのではなく、ポイントにPNumberを追加するということです。

Insert Into Bee_Sheet 
    (Agents_Name, Points, Date_added) 
Values 
    ('" + AN + "','" + PNumber + "','" + DateTime.Now + "') 
ON DUPLICATE KEY 
    UPDATE 
     Points=VALUES(Points)+VALUES(PNumber) 
関連する問題