データベースフィールドを1増やす 質問する

データベースフィールドを1増やす 質問する

MySQL で、たとえばログインのフィールドがある場合、SQL コマンド内でそのフィールドを 1 ずつ更新するにはどうすればよいでしょうか?

firstName、lastName、および logins を作成する INSERT クエリを作成しようとしています。ただし、firstName と lastName の組み合わせがすでに存在する場合は、logins を 1 増やします。

表は次のようになります。

firstName----|----lastName----|----logins

John               Jones             1
Steve              Smith             3

私が求めているのは、実行時に新しい人物 (つまり Tom Rogers) を挿入するか、使用された名前が John Jones の場合はログイン数を増やすコマンドです。

ベストアンサー1

エントリの更新:

単純な増分で問題は解決するはずです。

UPDATE mytable 
  SET logins = logins + 1 
  WHERE id = 12

新しい行を挿入するか、すでに存在する場合は更新します。

既存の行を更新したい場合、またはまだ存在しない行を挿入したい場合は、REPLACE構文またはINSERT...ON DUPLICATE KEY UPDATEオプション(ロブ・ヴァン・ダム実証された彼の答え)。

新しいエントリを挿入する:

あるいは、次のようなものを探しているかもしれませんINSERT...MAX(logins)+1? 基本的には、次のようなクエリを実行します。ただし、特定のニーズに応じて、もう少し複雑になる場合があります。

INSERT into mytable (logins) 
  SELECT max(logins) + 1 
  FROM mytable

おすすめ記事