MySQL での ON DUPLICATE KEY 更新の ID の取得
INSERT ON DUPLICATE KEY クエリの実行時、影響を受ける行の ID を取得する挑戦的になる可能性があります。 LAST_INSERT_ID() は通常、新しく挿入された行の ID のみを返すため、従来は別のクエリを実行する必要がありました。
ただし、LAST_INSERT_ID(expr) 関数を利用する回避策があります。この関数に式を渡すことで、更新された行に対してもその出力を意味のあるものにすることができます。
解決策
挿入または更新された行の ID を取得するには、次を使用します。単一のクエリ:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE>
UPDATE 句で id カラムを LAST_INSERT_ID(id) として設定すると、MySQL は新しい AUTO_INCREMENT 値を挿入された行と更新された行の両方の id 列。
これにより、ほとんどの行の ID を取得できます。 LAST_INSERT_ID() を呼び出すだけで、最近の操作 (挿入または更新) を実行できます。これは、INSERT ステートメントと UPDATE ステートメントの両方の機能を 1 つのクエリに効果的に組み合わせます。
以上がMySQL で INSERT ON DUPLICATE KEY UPDATE 後に影響を受ける行の ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。