INSERT...ON DUPLICATE KEY UPDATE構文を使うと レコードがなければINSERT、あればUPDATE 複数行の一括UPDATE フィールド毎に条件判定して更新 を1度のクエリで行うことができる。集計処理などに便利。 基本 レコード(行)がなかったらINSERTあったらUPDATEという処理を1クエリで行える。 ユニークなフィールドに対して重複する行が挿入される場合はUPDATEという判定 なので利用には UNIQUEインデックス(かPRIMARY KEY)を指定する必要 がある
![MySQL: INSERT...ON DUPLICATE KEY UPDATEまとめ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/6ee4c1d1cc704464a0fcee6d10819701bd366287/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9TXlTUUwlM0ElMjBJTlNFUlQuLi5PTiUyMERVUExJQ0FURSUyMEtFWSUyMFVQREFURSVFMyU4MSVCRSVFMyU4MSVBOCVFMyU4MiU4MSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NmM4NjExZDI4MzExNzNkNDg2YjQwODliZDBlMDU5ZTI%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweXV6cm96JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1jNzc2MmEzY2Y4YjIwZjRjNWNlZmI1YTY1YWIyY2YzZA%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D6a4dd42f5cc324066914dca7ba1fefb0)