[解決済み] データベースのフィールドを1つインクリメントする
2022-04-22 22:08:15
質問
MySQLで、例えばログインのフィールドがある場合、SQLコマンドでそのフィールドを1ずつ更新するにはどうすればよいでしょうか?
firstName、lastName、loginsを作成するINSERTクエリを作成しようとしています。 しかし、firstNameとlastNameの組み合わせがすでに存在する場合、loginsを1だけ増加させます。
ということで、テーブルは次のようになります。
firstName----|----lastName----|----logins
John Jones 1
Steve Smith 3
私は、実行時に新しい人(例えば、Tom Rogers)を挿入するか、またはJohn Jonesが使用される名前である場合にログインを増加させるコマンドを考えています。
どのように解決するのですか?
エントリーを更新しています。
単純なインクリメントで済むはずです。
UPDATE mytable
SET logins = logins + 1
WHERE id = 12
新しい行を挿入するか、既に存在する場合は更新します。
既に存在する行を更新したい場合、またはまだ存在しない行を挿入したい場合は
REPLACE
構文
または
INSERT...ON DUPLICATE KEY UPDATE
オプション(As
ロブ・ヴァン・ダム
で実証されました。
彼の答え
).
新しいエントリーを挿入する。
あるいは、次のようなものを探しているのかもしれません。
INSERT...MAX(logins)+1
? 基本的には、以下のようなクエリを実行することになりますが、特定のニーズによっては、もう少し複雑になるかもしれません。
INSERT into mytable (logins)
SELECT max(logins) + 1
FROM mytable
関連
-
MySQLによる既存テーブルのパーティショニングの実装
-
SQLException。オペランドは1列でなければなりません。
-
'INSERT文はFOREIGN KEY制約「FK_TourismReservation_Users」と競合していました。その
-
PostMan レポート エラー: 接続 ECONNREFUSED 127.0.0.1:port number
-
[解決済み] どのトランザクションが「テーブルメタデータのロック待ち」状態を引き起こしているかを確認するにはどうすればよいですか?
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLデータベースのテーブルのサイズを取得する方法は?
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] Pythonにおけるincrementとdecrement演算子の挙動
-
[解決済み】なぜこれらのコンストラクトはプリインクリメントとポストインクリメントを使用して未定義の動作をしているのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL Innodb インデックスメカニズム詳細解説
-
mysqlにおけるvarcharの日付比較とソートの実装
-
mysqlのデータ圧縮性能比較 詳細
-
MySQLインデックスベースストレステストの実装
-
MysqlからElasticsearchにデータを同期させる方法を説明します。
-
[解決済み】DynamoDB : 提供されたキー要素がスキーマと一致しません。
-
[解決済み] Mysqlでidを使用してテーブルから多くの行を削除する
-
[解決済み] ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセス拒否 - 特権がない?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] ブーリアン値を格納するために使用するMySQLデータ型