かなり長い間検索しましたが、質問に対する答えが見つかりませんでした。まず、私の質問がどこから来たのかを説明させてください。
私は、ユーザーが利用可能な曜日とその日のオフィス時間を指定できるユーザーフォームを持つ Web アプリケーションを持っています。これを、mo-su のチェックボックスと、チェックボックス/日ごとに随時ドロップダウンを含む Web フォームと想像してください。ユーザープロファイルがデータベーステーブルに挿入された場合、テーブルには次のようなものがあります。
idUser | idDay | fromTime | toTime
1 | 0 | 08:00 | 09:00
(この例では、0 は月曜日を表します (0=mo - 6=su))
もちろん、ユーザープロファイルを変更する機能があります。したがって、最初にユーザーが午前 5 時から午後 3 時まで利用可能だった可能性があります。これでプロファイルが変更され、ユーザーは月、金は午前 5 時から午後 3 時まで、私たちは午後 1 時まで、土は午前 9 時から午後 5 時までのみ利用できるようになりました。この場合、既存のエントリを更新して、削除されたエントリを削除する必要があります。 (この例では tue) をクリックして、新しい利用可能な日を挿入します。
現在、最初にユーザーのすべてのエントリを削除し、新しい挿入を実行します。これは非常に簡単で、この場合はおそらく最善の方法です (ユーザーごとに最大 7 つのエントリがあるため)。しかし、クエリを最適化したほうがよい別の状況でも同じ問題が発生する可能性があります。
最後に私の質問は次のとおりです。存在する場合は更新を実行し、存在しない場合は挿入し、1 つのクエリだけで他のすべてのエントリを削除することは可能ですか?
私の質問が理解できることを願っています。