INSERT INTO ... ON DUPLICATE KEY UPDATE 複数アイテムの場合
2023-10-22 22:56:52
質問
次のようなことをしたいのですが
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value')
ON DUPLICATE KEY UPDATE
t.c = 'value';
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = 'value2';
t.a と t.b はキーです。これはすべてうまくいくのですが、2回目の挿入でエラーになります。phpMyAdminでは、このようなクエリは正常に動作しますが、そのクエリからの結果をコメントとして出力しているので、クエリを独立して実行しているのでしょうか?
このようなものも良いですが、私は各項目に対して異なる値を持つ必要があります。私はこれを好むが、私は各値の更新時に値を変更する方法がわからない。
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value'), ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = ???
問題はクエスチョンマークにあります。各挿入/更新が正しい値を持つようにするには、そこに何を置けばよいのでしょうか?もちろん、そこに値を入れれば、すべてのフィールドがその値を取得します。
もし、2つのキーを持つ複数のフィールドに対して、quot; update if exists, otherwise insert" クエリを実行する他の方法があれば、私も他のアイデアを得たいのです。私は各クエリを別々に実行することができると思いますが (phpMyAdmin のように?)、それは多くのクエリになるので、私は本当にそれを避けたいと思います。
どのように解決するのですか?
VALUES()関数を使用する
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value'), ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = VALUES(t.c)
見る http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
関連
-
Mysqlデータベースの手動および定期的なバックアップ手順
-
Unknown character set.を解決する。MySQLデータベースインポート時の'utf8mb4'エラーの解消
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] "INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"
-
[解決済み] phpMyAdminで外部キーを設定する?
-
[解決済み] MySQLの挿入クエリから新しいレコードの主キーIDを取得する?
-
[解決済み】MySQL ON DUPLICATE KEY UPDATEで1クエリで複数行挿入する場合
-
[解決済み】INSERT ... ON DUPLICATE KEY (何もしない)
-
[解決済み] insert into ... select from ... on duplicate key update (重複キーで更新)
最新
-
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の整数インデックスと文字列インデックスの失敗または暗黙の変換問題
-
MySQLはこのようなUpdateステートメントを書くべきではありません
-
MySQLインデックスベースストレステストの実装
-
MySQLの悲観的ロックと楽観的ロックの実装スキーム
-
Mysqlのソート機能の詳細
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
[解決済み] SQLエラー。ORA-01861:リテラルは、フォーマット文字列01861に一致しません。
-
CMakeエラー。ソースディレクトリ "/xxx/mysql-5.6.21" に CMakeLists.txt がないようです。
-
[解決済み] MySQLデータベースのテーブルのサイズを取得する方法は?
-
[解決済み] MySQLで複数のカラムに一意制約を指定するには?