1. ホーム
  2. database

[解決済み] SQL int列を1つのコマンドで増やしたり減らしたりする方法

2022-05-27 14:35:07

質問

数量カラムを持つOrdersテーブルを持っています。チェックインまたはチェックアウトの際に、数量カラムを1つずつ更新する必要があります。これを 1 つのアクションで行う方法はありますか、または既存の値を取得し、その上に 1 つを追加またはマイナスする必要がありますか。

もう一つの質問は、新しい行を挿入するとき、同じデータが存在するかどうかをチェックし、存在しない場合は挿入する必要があるかということです。

ありがとうございます。

どのように解決するのですか?

1に答えるために。

UPDATE Orders SET Quantity = Quantity + 1 WHERE ...

2つ目にお答えします。

これにはいくつかの方法があります。 データベースを指定しなかったので、MySQLと仮定します。

  1. INSERT INTO table SET x=1, y=2 ON DUPLICATE KEY UPDATE x=x+1, y=y+2
  2. REPLACE INTO table SET x=1, y=2

どちらもあなたの質問を処理することができます。 しかし、最初の構文は、(2番目の構文のように)単にレコードを置き換えるのではなく、より柔軟にレコードを更新することを可能にします。

両方が存在するためには、UNIQUEキーが定義されていなければならないことに留意してください...